Changeset 738:b602f977d4a6

Show
Ignore:
Timestamp:
10/12/09 13:07:02 (4 years ago)
Author:
tgambet
Branch:
default
convert_revision:
svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@739
Message:

added logger
+email address validity check

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/org/w3c/unicorn/util/Mail.java

    r723 r738  
    1 // $Id: Mail.java,v 1.3 2009-10-09 11:13:10 tgambet Exp $ 
     1// $Id: Mail.java,v 1.4 2009-10-12 13:07:02 tgambet Exp $ 
    22// Author: Thomas Gambet 
    33// (c) COPYRIGHT MIT, ERCIM and Keio, 2009. 
     
    1414import java.util.Properties; 
    1515 
    16 import javax.mail.Address; 
    1716import javax.mail.Authenticator; 
    1817import javax.mail.MessagingException; 
    1918import javax.mail.Session; 
    2019import javax.mail.Transport; 
     20import javax.mail.internet.AddressException; 
    2121import javax.mail.internet.InternetAddress; 
    2222import javax.mail.internet.MimeBodyPart; 
     
    2424import javax.mail.internet.MimeMultipart; 
    2525 
     26import org.apache.commons.logging.Log; 
     27import org.apache.commons.logging.LogFactory; 
    2628import org.w3c.unicorn.exceptions.UnicornException; 
    2729import org.w3c.unicorn.output.FileOutputFormater; 
     
    3032public class Mail { 
    3133 
     34        private static Log logger = LogFactory.getLog(Mail.class); 
     35         
    3236        public void sendMail(String[] recipients, String subject, List<OutputFormater> outputFormaters, Map<String, Object> contextObjects) throws UnicornException { 
    3337                 
     
    4751                        msg.setFrom(addressFrom); 
    4852 
    49                         Address[] recipientAdresses = new Address[recipients.length]; 
     53                        List<InternetAddress> validAddresses = new ArrayList<InternetAddress>(); 
     54                         
     55                        for (String recipient : recipients) { 
     56                                try { 
     57                                        InternetAddress address = new InternetAddress(recipient); 
     58                                        validAddresses.add(address); 
     59                                } catch(AddressException e) { 
     60                                        logger.warn("Invalid address: \"" + recipient + "\". Skipping."); 
     61                                } 
     62                        } 
     63                         
     64                        InternetAddress[] recipientsAddresses = new InternetAddress[validAddresses.size()]; 
    5065                        int i = 0; 
    51                         for (String recipient : recipients) { 
    52                                 recipientAdresses[i] = new InternetAddress(recipient); 
     66                        for (InternetAddress add : validAddresses) { 
     67                                recipientsAddresses[i] = add; 
    5368                                i++; 
    5469                        } 
    55                         msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientAdresses); 
     70                         
     71                        msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientsAddresses); 
    5672                        msg.setSubject(subject); 
    5773