[Schmitzm-commits] r1175 - in trunk/src/schmitzm: . mail
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Oct 26 14:20:22 CEST 2010
Author: alfonx
Date: 2010-10-26 14:20:22 +0200 (Tue, 26 Oct 2010)
New Revision: 1175
Added:
trunk/src/schmitzm/mail/
trunk/src/schmitzm/mail/MailUtil.java
Log:
Added: trunk/src/schmitzm/mail/MailUtil.java
===================================================================
--- trunk/src/schmitzm/mail/MailUtil.java 2010-10-26 10:00:34 UTC (rev 1174)
+++ trunk/src/schmitzm/mail/MailUtil.java 2010-10-26 12:20:22 UTC (rev 1175)
@@ -0,0 +1,145 @@
+package schmitzm.mail;
+
+import java.util.Date;
+import java.util.Properties;
+
+import javax.mail.Authenticator;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Diese Klasse stellt Hilfsmethoden zum verschicken von Mails bereit.
+ */
+public class MailUtil {
+ private static Logger log = Logger.getLogger(MailUtil.class);
+
+ /**
+ * Verschickt eine Email, wobei der Login Klartext erfolgt. Die Email wird
+ * auf dem Aktuellen Thread verschickt und kann natürlich theoretisch
+ * längere zeit beanspruchen! Kein Parameter darf <code>null</code> sein.
+ *
+ * @param settings
+ * A {@link Properties} instance containing all basic
+ * configuration of the mailservice.
+ */
+ public void sendMail_cleartext(final String recipientsAddress,
+ final String subject, final String text, Properties settings)
+ throws MessagingException {
+
+ final String mailhost = settings.getProperty("mail.smtp.host");
+ final String senderAddress = settings
+ .getProperty("mail.sender.address");
+ log.debug("try: Sende Mail via " + mailhost + " an "
+ + recipientsAddress + " als " + senderAddress
+ + " with Betreff = " + subject);
+
+ // It is expected that the client supplies values for the properties
+ // listed in Appendix A of the JavaMail spec
+ // (particularly mail.store.protocol, mail.transport.protocol,
+ // mail.host, mail.user, and mail.from
+ Properties mailProps = new Properties();
+ // mailProps.setProperty("mail.store.protocol",
+ // getCfg("mail.store.protocol"));
+ // mailProps.setProperty("mail.transport.protocol",
+ // getCfg("mail.transport.protocol"));
+ // mailProps.setProperty("mail.host", getCfg("mail.host"));
+ // mailProps.setProperty("mail.user", getCfg("mail.user"));
+ // mailProps.setProperty("mail.from", getCfg("mail.from"));
+ mailProps.setProperty("mail.smtp.user",
+ settings.getProperty("mail.smtp.user"));
+ mailProps.setProperty("mail.smtp.credential",
+ settings.getProperty("mail.smtp.credential"));
+ mailProps.setProperty("mail.sender.address",
+ settings.getProperty("mail.sender.address"));
+ mailProps.setProperty("mail.smtp.host",
+ settings.getProperty("mail.smtp.host"));
+ mailProps.setProperty("mail.smtp.auth",
+ settings.getProperty("mail.smtp.auth"));
+ // mailProps.setProperty("mail.smtp.starttls.enable",
+ // getCfg("mail.smtp.starttls.enable"));
+ // mailProps.setProperty("mail.smtp.ssl.protocols",
+ // getCfg("mail.smtp.ssl.protocols"));
+
+ final Session session = Session.getInstance(mailProps,
+ new MailAuthenticator(settings.getProperty("mail.smtp.user"),
+ settings.getProperty("mail.smtp.credential")));
+ // Session session = Session.getDefaultInstance(properties, auth);
+
+ // Eine neue Message erzeugen
+ final Message msg = new MimeMessage(session);
+
+ try {
+ // Hier werden die Absender- und Empfängeradressen gesetzt
+ msg.setFrom(new InternetAddress(senderAddress));
+ msg.setRecipients(Message.RecipientType.TO,
+ InternetAddress.parse(recipientsAddress, false));
+
+ // Der Betreff und Body der Message werden gesetzt
+ msg.setSubject(subject);
+
+ // msg.setContent(text, "text/plain");
+ msg.setText(text);
+
+ // Hier lassen sich HEADER-Informationen hinzufügen
+ // msg.setHeader("Test", "Test");
+ msg.setSentDate(new Date());
+
+ // Zum Schluss wird die Mail natürlich noch verschickt
+ Transport.send(msg);
+ } catch (final AddressException ae) {
+ throw new MessagingException(
+ "Email konnte nicht versendet werden:", ae);
+ } catch (final MessagingException me) {
+ throw me;
+ }
+
+ log.debug("Verschicken erfolgreich!");
+ }
+
+ class MailAuthenticator extends Authenticator {
+
+ /**
+ * Ein String, der den Usernamen nach der Erzeugung eines Objektes<br>
+ * dieser Klasse enthalten wird.
+ */
+ private final String user;
+
+ /**
+ * Ein String, der das Passwort nach der Erzeugung eines Objektes<br>
+ * dieser Klasse enthalten wird.
+ */
+ private final String password;
+
+ /**
+ * Der Konstruktor erzeugt ein MailAuthenticator Objekt<br>
+ * aus den beiden Parametern user und passwort.
+ *
+ * @param user
+ * String, der Username fuer den Mailaccount.
+ * @param password
+ * String, das Passwort fuer den Mailaccount.
+ */
+ public MailAuthenticator(final String user, final String password) {
+ this.user = user;
+ this.password = password;
+ }
+
+ /**
+ * Diese Methode gibt ein neues PasswortAuthentication Objekt zurueck.
+ *
+ * @see javax.mail.Authenticator#getPasswordAuthentication()
+ */
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(this.user, this.password);
+ }
+ }
+
+}
Property changes on: trunk/src/schmitzm/mail/MailUtil.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Id URL
Name: svn:eol-style
+ native
More information about the Schmitzm-commits
mailing list