[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