[Yanel-dev] Re: Yanel Patch für MailUtil

Michael Wechner michael.wechner at wyona.com
Tue Sep 7 00:21:12 CEST 2010


Michael Wechner wrote:
> Dear Balz
>
> Thanks for your patch, whereas I am not sure if it is a bug or a 
> feature. I first need to check the history of this class

it seems like this method was modified when we have added a reply-to 
address:

svn diff -r47277 src/core/java/org/wyona/yanel/core/util/MailUtil.java
Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java
===================================================================
--- src/core/java/org/wyona/yanel/core/util/MailUtil.java    (revision 
47277)
+++ src/core/java/org/wyona/yanel/core/util/MailUtil.java    (working copy)
@@ -21,18 +21,46 @@
 
     /**
      * @param from From address
-     * @param from To address
+     * @param to To address
      * @param subject Subject of email
      * @param content Body of email
      */
     public static void send(String from, String to, String subject, 
String content) throws AddressException, MessagingException {
-        send(null, -1, from, to, subject, content);
+        send(null, -1, from, null, to, subject, content);
     }
 
     /**
+     * @param from From address
+     * @param replyTo email address (if null, then no reply-to will be set)
+     * @param to To address
+     * @param subject Subject of email
+     * @param content Body of email
+     */
+    public static void send(String from, String replyTo, String to, 
String subject, String content) throws AddressException, 
MessagingException {
+        send(null, -1, from, replyTo, to, subject, content);
+    }
+
+    /**
      *
      */
     public static void send(String smtpHost, int smtpPort, String from, 
String to, String subject, String content) throws AddressException, 
MessagingException {
+        send(null, -1, from, null, to, subject, content);
+    }
+
+    /**
+     * Send e-mail with a MIME type of "text/plain" and as encoding the 
platform's default charset
+     * @param replyTo email address (if null, then no reply-to will be set)
+     */
+    public static void send(String smtpHost, int smtpPort, String from, 
String replyTo, String to, String subject, String content) throws 
AddressException, MessagingException {
+        send(smtpHost, smtpPort, from, replyTo, to, subject, content, 
java.nio.charset.Charset.defaultCharset().name(), "plain");
+    }
+
+    /**
+     * @param replyTo email address (if null, then no reply-to will be set)
+     * @param charset Charset, e.g. utf-8
+     * @param mimeSubType Mime sub-type, e.g. "html" or "plain"
+     */
+    public static void send(String smtpHost, int smtpPort, String from, 
String replyTo, String to, String subject, String content, String 
charset, String mimeSubType) throws AddressException, MessagingException {
         // Create a mail session
         Session session = null;
         if (smtpHost != null && smtpPort >= 0) {
@@ -45,16 +73,21 @@
             java.util.Properties props = new java.util.Properties();
             props.put("mail.smtp.host", "mail.foo.bar"); // Dummy value
             props.put("mail.smtp.port", "37"); // Dummy value
-            session = Session.getDefaultInstance(props, null);
+            session = Session.getDefaultInstance(props, null); // INFO: 
The dummy values will be ignored, because Yanel 
(org.wyona.yanel.core.Yanel) sets during initialization the default session!
             log.warn("Use default mail session: " + 
session.getProperty("mail.smtp.host") + ":" + 
session.getProperty("mail.smtp.port"));
         }
 
         // Construct the message
-        Message msg = new MimeMessage(session);
+        MimeMessage msg = new MimeMessage(session);
         msg.setFrom(new InternetAddress(from));
+        if (replyTo != null) {
+            InternetAddress[] replyToAddresses = new InternetAddress[1];
+            replyToAddresses[0] = new InternetAddress(replyTo);
+            msg.setReplyTo(replyToAddresses);
+        }
         msg.setRecipient(Message.RecipientType.TO, new 
InternetAddress(to));
         msg.setSubject(subject);
-        msg.setText(content);
+        msg.setText(content, charset, mimeSubType);
 
         // Send the message
         Transport.send(msg);


So yes I would say this is a bug, but which we never noticed, because it 
was using the mail settings configured within (local.)yanel.xml ...

I will fix it tomorrow after a sleeping cycle ;-)

Cheers

Michael
>
> -----
> svn log src/core/java/org/wyona/yanel/core/util/MailUtil.java
> ------------------------------------------------------------------------
> r52649 | michi | 2010-08-24 10:09:58 +0200 (Tue, 24 Aug 2010) | 1 line
>
> note about default session added
> ------------------------------------------------------------------------
> r52643 | michi | 2010-08-24 09:49:07 +0200 (Tue, 24 Aug 2010) | 1 line
>
> enhanced with charset and mime sub-type
> ------------------------------------------------------------------------
> r47278 | michi | 2010-01-27 12:13:58 +0100 (Wed, 27 Jan 2010) | 1 line
>
> reply to address added
> ------------------------------------------------------------------------
> r47265 | michi | 2010-01-27 10:25:38 +0100 (Wed, 27 Jan 2010) | 1 line
>
> mail utility class added
> -------
>
> in order to make a decision.
>
> Cheers
>
> Michael
>
> Balz Schreier wrote:
>> Hallo Michi,
>>
>> ich habe einen Patch für MailUtil, siehe Attachment.
>>
>> Diff:
>>
>> basZeros-MacBook-Pro:trunk baszero$ cat MailUtil_Patch_Balz.diff 
>> Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java
>> ===================================================================
>> --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision 
>> 52939)
>> +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working copy)
>> @@ -44,7 +44,7 @@
>>       *
>>       */
>>      public static void send(String smtpHost, int smtpPort, String 
>> from, String to, String subject, String content) throws 
>> AddressException, MessagingException {
>> -        send(null, -1, from, null, to, subject, content);
>> +        send(smtpHost, smtpPort, from, null, to, subject, content);
>>      }
>>  
>>      /**
>>
>>
>> Kannst du mir sagen, sobald der Patch im Trunk ist? Ich werde das für 
>> Zwischengas sicherlich tracken.
>>
>> Gruss
>> Balz
>



More information about the Yanel-development mailing list