Schriftart / farbe / größe bei Emailversand ändern

internet

Top Contributor
Hallo,
ich implementiere gerade einen Emailversand.

Nun möchte ich die Schriftfarbe / art / größe der zugestellten Email ändern.
Wie mache ich das?
MfG
 
>Nun möchte ich die Schriftfarbe / art / größe der zugestellten Email ändern.

Schriftfarbe --> html tags styles....wenn contentType = text/html

art --> Was Art? conentType?

größe --> häng noch 100 MB nullen als Attachment dran
 
Java:
String text = "hallo welt";
text = "<font size="7">" + text + "</font><br>";

EDIT:
Die " sollte man noch Escapen mit \
 
Zuletzt bearbeitet:
Java:
String string = "\"\"\""; // String bestehend aus 3 "

Java weiss sonst nicht welches " Zeichen das Ende ist und welches das " ist
 
schick dir mal mein schickes template. Musst nur noch die login daten ausfüllen ;-)
Java:
import java.io.File;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


class SimpleMail {

	// login data
	private static final String TYPE = "smtp";
	private static final String HOST = "";
	private static final String USER = "";
	private static final String PASSWD = "";
	private static final int PORT = 25;
	// send data
	private static final String SENDER = "";
	private static final String RECIPIENT = "";

	public static void main(String[] args) throws Exception {
		Session session = Session.getDefaultInstance(new Properties());
		session.setDebug(true);
		Transport tr = session.getTransport(new URLName(TYPE, HOST, PORT, null, USER, PASSWD));
		Message message = new MimeMessage(session);
		message.addRecipient(RecipientType.TO, new InternetAddress(RECIPIENT));
		message.addFrom(new InternetAddress[] { new InternetAddress(SENDER) });
		//subject
		message.setSubject("the subject");
		//the multipart
		MimeMultipart multiPart = new MimeMultipart("mixed");
		// a plaintext part
		MimeBodyPart body1 = new MimeBodyPart();
		body1.setContent("blub", "text/plain");
		multiPart.addBodyPart(body1);
		// a html part
		MimeBodyPart body2 = new MimeBodyPart();
		body2.setContent("<b>blub</b>", "text/html");
		multiPart.addBodyPart(body2);
		// a picture
		MimeBodyPart body3 = new MimeBodyPart();
		body3.attachFile(new File("1.gif"));
		multiPart.addBodyPart(body3);
		message.setContent(multiPart);
		//send
		tr.connect();
		tr.sendMessage(message, message.getAllRecipients());
		tr.close();
	}
}
 
>hm, verstehe.

hm. denke nicht.

Schau dir einfach mal das blau an:
Java:
text = "<font size="7">" + text + "</font><br>";
Es sollte nur einmal schwarz da sein (nämlich der String text) ;-)
 
es zeigt mir nun zwar keine Compiler - Fehler mehr an,
aber in der Email wird es nicht so ausgeben sprich "<font face="Verdana">"
als Text in der Email ausgegeben.

Hier mein Code:
Java:
sBody = "\"<font face=\"Verdana\">\"" + sBody + "\"</font><br>\"";
 
hast ein paar \" zuviel....
Ins Template pack:
Java:
package ch.dmj.faq.mail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


class SimpleMail {

	// login data
	private static final String TYPE = "smtp";
	private static final String HOST = "";
	private static final String USER = "";
	private static final String PASSWD = "";
	private static final int PORT = 25;
	// send data
	private static final String SENDER = "";
	private static final String RECIPIENT = "";

	public static void main(String[] args) throws Exception {
		Session session = Session.getDefaultInstance(new Properties());
		session.setDebug(true);
		Transport tr = session.getTransport(new URLName(TYPE, HOST, PORT, null, USER, PASSWD));
		Message message = new MimeMessage(session);
		message.addRecipient(RecipientType.TO, new InternetAddress(RECIPIENT));
		message.addFrom(new InternetAddress[] { new InternetAddress(SENDER) });
		//subject
		message.setSubject("the subject");
		//the multipart
		MimeMultipart multiPart = new MimeMultipart("mixed");
//		// a plaintext part
//		MimeBodyPart body1 = new MimeBodyPart();
//		body1.setContent("blub", "text/plain");
//		multiPart.addBodyPart(body1);
		// a html part
		MimeBodyPart body2 = new MimeBodyPart();
		
		String body = "<font face=\"Verdana\" size=\"20\">hallo welt</font><br>";
		
		body2.setContent(body, "text/html");
		multiPart.addBodyPart(body2);
//		// a picture
//		MimeBodyPart body3 = new MimeBodyPart();
//		body3.attachFile(new File("1.gif"));
//		multiPart.addBodyPart(body3);
		message.setContent(multiPart);
		//send
		tr.connect();
		tr.sendMessage(message, message.getAllRecipients());
		tr.close();
	}
}
 
So geändert:
Java:
sBody = "<font face=\"Verdana\" size=\"20\">" + sBody + "</font><br>";

Klappt aber immer noch nicht - es wird immer noch der HTML - Code mitausgegeben.
Bezüglich deines Templates.
Habe eine ähnliche Methode, die ich jetzt eig nicht unebedingt ändern möchte:

Java:
public boolean sendeMail1(String sVon, String sAn, String sSubject, String sBody) {
		
			try {
					//String file = "";
					Properties prop = System.getProperties();
		
					if (server == null || server.isEmpty()) {
						return false;
					}
					prop.put("mail.transport.protocol", "smtp");
					prop.put("mail.smtp.auth", "true");
					prop.put("mail.smtp.host", server);
					prop.put("mail.smtp.port", port);
					prop.put("mail.user", user);
					prop.put("mail.password", password);
					Authenticator auth = null;
				
					auth = new Authenticator() {
				@Override
				public PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(user, password);
				}
			};
		
		javax.mail.Session ses1 = Session.getInstance(prop, auth);
		MimeMessage msg = new MimeMessage(ses1);
		msg.setFrom(new InternetAddress(sVon));
		msg.addRecipient(Message.RecipientType.TO, new InternetAddress(sAn));
		msg.setSubject(sSubject);
		Multipart multipart = new MimeMultipart();
		BodyPart messageBodyPart = new MimeBodyPart();
		messageBodyPart.setText(sBody);
		multipart.addBodyPart(messageBodyPart);
		/*
		file = sFilename.substring(sFilename.lastIndexOf("/") + 1);
		if (file.equalsIgnoreCase("")) {
				file = sFilename.substring(sFilename.lastIndexOf("\\") + 1);
		}
		
		if (!file.equalsIgnoreCase("")) {
				messageBodyPart = new MimeBodyPart();
				DataSource source = new FileDataSource(sFilename);
				messageBodyPart.setDataHandler(new DataHandler(source));
				messageBodyPart.setFileName(file);
				multipart.addBodyPart(messageBodyPart);
			}
		*/	
		msg.setContent(multipart);
		msg.setSentDate(new Date());

		// Hier wird die Email versendet
		Transport.send(msg);
		} 
		
		catch (Exception e) {
			System.out.print(e.fillInStackTrace());
			return false;
		}
		
			return true;
		}
 
/**
* A convenience method that sets the given String as this
* part's content with a MIME type of "text/plain".
*
* @param text The text that is the Message's content.
* @exception IllegalWriteException if the underlying
* implementation does not support modification of
* existing values
* @exception IllegalStateException if this Part is obtained
* from a READ_ONLY folder
*/
public void setText(String text) throws MessagingException;

API hilft --> setText
 
Bin mir jetzt net so sicher, aber wenn man nicht weiß, was escapen ist, ist dann ein E-Mail Versand zu coden nicht ein wenig anspruchsvoll?
Ich würde eher mit etwas leichterem anfangen.
 

Neue Themen


Zurück
Oben