Author: sebawagner
Date: Sun Apr 22 08:19:27 2012
New Revision: 1328812

URL: http://svn.apache.org/viewvc?rev=1328812&view=rev
Log:
OPENMEETINGS-205 ReplyTo Field leads to exception when sending emails to 
external users

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailUtil.java
Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java?rev=1328812&r1=1328811&r2=1328812&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
 Sun Apr 22 08:19:27 2012
@@ -153,13 +153,13 @@ public class AppointmentLogic {
                Long numberOfParticipants = cfgManagement.getConfValue(
                                "calendar.conference.rooms.default.size", 
Long.class, "50");
 
-               Long room_id = roommanagement.addRoom(3, // Userlevel
+               Long room_id = roommanagement.addRoom(3, // user level
                                appointmentName, // name
                                roomType, // RoomType
                                "", // Comment
                                numberOfParticipants, // Number of participants
                                true, // public
-                               null, // Organisations
+                               null, // organizations
                                true, // Appointment
                                false, // Demo Room => Meeting Timer
                                null, // Meeting Timer time in seconds
@@ -190,10 +190,10 @@ public class AppointmentLogic {
 
                try {
 
-                       // Adding Invitor as Meetingmember
+                       // Adding creator as MeetingMember
                        Users user = userManagement.getUserById(userId);
                        
-                       // Refactor the given time ignoring the Date is always 
UTC!
+                       // Re-factor the given time ignoring the Date is always 
UTC!
                        TimeZone timezone = 
timezoneUtil.getTimezoneByUser(user);
                        
                        Long appointmentId = 
appointmentDao.addAppointment(appointmentName,

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java?rev=1328812&r1=1328811&r2=1328812&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
 Sun Apr 22 08:19:27 2012
@@ -186,8 +186,9 @@ public class Invitationmanagement {
                                if (invitationId > 0) {
 
                                        if (sendMail) {
-                                               this.sendInvitionLink(username, 
message, baseurl,
-                                                               email, 
us.getAdresses().getEmail(), subject, invitation.getHash(),
+                                               
this.sendInvitionLink(us.getAdresses().getEmail(), 
+                                                               username, 
message, baseurl,
+                                                               email, subject, 
invitation.getHash(),
                                                                validFrom, 
validTo, language_id);
                                        }
 
@@ -628,11 +629,6 @@ public class Invitationmanagement {
                                        username, message, invitation_link, 
language_id, dStart,
                                        dEnd);
 
-                       System.out.println(dStart);
-                       System.out.println(dEnd);
-
-                       System.out.println(template);
-
                        return mailHandler.sendMail(email, replyTo, subject, 
template);
 
                } catch (Exception err) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?rev=1328812&r1=1328811&r2=1328812&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
Sun Apr 22 08:19:27 2012
@@ -10,7 +10,6 @@ import java.net.URL;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.Set;
-import java.util.regex.Pattern;
 
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
@@ -35,6 +34,7 @@ import org.openmeetings.app.remote.red5.
 import org.openmeetings.servlet.outputhandler.BackupExport;
 import org.openmeetings.servlet.outputhandler.BackupImportController;
 import org.openmeetings.utils.OMContextListener;
+import org.openmeetings.utils.mail.MailUtil;
 import org.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -42,9 +42,7 @@ import org.springframework.context.suppo
 
 public class Admin {
        private static final Logger log = 
Red5LoggerFactory.getLogger(Admin.class);
-       private static final Pattern rfc2822 = Pattern.compile(
-               
"^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
-       );
+       
        private boolean verbose = false;
        private InstallationConfig cfg = null;
        private Options opts = null;
@@ -301,7 +299,7 @@ public class Admin {
                                        }
                                        
                                        try {
-                                               if 
(!rfc2822.matcher(email).matches()) {
+                                               if (!MailUtil.matches(email)) {
                                                    throw new 
AddressException("Invalid address");
                                                }
                                                new InternetAddress(email, 
true);

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java?rev=1328812&r1=1328811&r2=1328812&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
 Sun Apr 22 08:19:27 2012
@@ -110,7 +110,10 @@ public class MailThread {
                        msg.setSubject(subject);
                        msg.setFrom(new InternetAddress(from));
                        if (replyTo != null && 
"1".equals(cfgManagement.getConfValue("inviter.email.as.replyto", String.class, 
"1"))) {
-                               msg.setReplyTo(new InternetAddress[]{new 
InternetAddress(replyTo)});
+                               log.debug("setReplyTo "+replyTo);
+                               if (MailUtil.matches(replyTo)) {
+                                       msg.setReplyTo(new 
InternetAddress[]{new InternetAddress(replyTo)});
+                               }
                        }
                        msg.addRecipients(Message.RecipientType.TO,
                                        InternetAddress.parse(recipients, 
false));

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailUtil.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailUtil.java?rev=1328812&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailUtil.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailUtil.java
 Sun Apr 22 08:19:27 2012
@@ -0,0 +1,17 @@
+package org.openmeetings.utils.mail;
+
+import java.util.regex.Pattern;
+
+public class MailUtil {
+       
+       private static final Pattern rfc2822 = Pattern.compile(
+               
"^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
+       );
+       
+       public static boolean matches(String email) {
+               
+               return rfc2822.matcher(email).matches();
+               
+       }
+
+}


Reply via email to