Java Mail mit Apache commons

Mit Java Mails zu versenden ist nicht schwer, einen besonders einfachen Ansatz wählt das Apache Commons Projekt mit seinem Subprojekt Email. Das einzige, was man beachten muss sind die Abhängigkeiten zu Suns Java Mail und Activation Framework, deren Java Archive man mit in den CLASSPATH aufnehmen muss.
Eine Klasse, die Commons Email verwendet und den Versand von Emails mit Anhängen ermöglicht, könnte so aussehen (Mailserver und Port müssen natürlich angepasst werden):

package de.k-oo.mail;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

public class Mailer {
	private String subject,msg;
	private Map to;
	private List attachements;
	private static final String server="mailserver";
	private static final int port=25;
	
	public Mailer(String subject, String msg, Map to, List attachements) {
		super();
		this.subject = subject;
		this.msg = msg;
		this.to = to;
		this.attachements = attachements;
	}

	public Mailer(String subject, String msg, Map to) {
		super();
		this.subject = subject;
		this.msg = msg;
		this.to = to;
		this.attachements=new ArrayList();
	}

	public List getAttachements() {
		return attachements;
	}

	public void setAttachements(List attachements) {
		this.attachements = attachements;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public Map getTo() {
		return to;
	}

	public void setTo(Map to) {
		this.to = to;
	}

	public void mail() throws EmailException {
		// Create the email message
		MultiPartEmail email = new MultiPartEmail();
		email.setHostName(server);
		email.setSmtpPort(port);
		email.setFrom("prosys@zid-f.bfinv.de", "prosys");

		for (String key : to.keySet()) {
			// Mail Adresse, Alias
			email.addTo(key, to.get(key));
		}

		email.setSubject(subject);
		email.setMsg(msg);

		// Create the attachment
		for (EmailAttachment attachment : attachements) {
			// add the attachment
			email.attach(attachment);
		}

		// send the email
		email.send();
	}
}

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: