2006/unicorn/src/org/w3c/unicorn/util Mail.java,1.3,1.4

Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/util
In directory hutz:/tmp/cvs-serv28398/src/org/w3c/unicorn/util

Modified Files:
	Mail.java 
Log Message:
added logger 
+email address validity check

Index: Mail.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/util/Mail.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Mail.java	9 Oct 2009 11:13:10 -0000	1.3
+++ Mail.java	12 Oct 2009 13:07:02 -0000	1.4
@@ -13,22 +13,26 @@
 import java.util.Map;
 import java.util.Properties;
 
-import javax.mail.Address;
 import javax.mail.Authenticator;
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
+import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.w3c.unicorn.exceptions.UnicornException;
 import org.w3c.unicorn.output.FileOutputFormater;
 import org.w3c.unicorn.output.OutputFormater;
 
 public class Mail {
 
+	private static Log logger = LogFactory.getLog(Mail.class);
+	
 	public void sendMail(String[] recipients, String subject, List<OutputFormater> outputFormaters, Map<String, Object> contextObjects) throws UnicornException {
 		
 		try {
@@ -46,13 +50,25 @@
 		    InternetAddress addressFrom = new InternetAddress(mailProps.getProperty("unicorn.mail.from"), "Unicorn");
 			msg.setFrom(addressFrom);
 
-			Address[] recipientAdresses = new Address[recipients.length];
-			int i = 0;
+			List<InternetAddress> validAddresses = new ArrayList<InternetAddress>();
+			
 			for (String recipient : recipients) {
-				recipientAdresses[i] = new InternetAddress(recipient);
+				try {
+					InternetAddress address = new InternetAddress(recipient);
+					validAddresses.add(address);
+				} catch(AddressException e) {
+					logger.warn("Invalid address: \"" + recipient + "\". Skipping.");
+				}
+			}
+			
+			InternetAddress[] recipientsAddresses = new InternetAddress[validAddresses.size()];
+			int i = 0;
+			for (InternetAddress add : validAddresses) {
+				recipientsAddresses[i] = add;
 				i++;
 			}
-			msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientAdresses);
+			
+			msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientsAddresses);
 			msg.setSubject(subject);
 			
 			if (outputFormaters.size() > 1) {

Received on Monday, 12 October 2009 13:07:06 UTC