Update of /var/cvs/applications/email/src/org/mmbase/datatypes
In directory james.mmbase.org:/tmp/cvs-serv17800

Modified Files:
        VerifyEmailProcessor.java 
Log Message:
send decent html


See also: 
http://cvs.mmbase.org/viewcvs/applications/email/src/org/mmbase/datatypes


Index: VerifyEmailProcessor.java
===================================================================
RCS file: 
/var/cvs/applications/email/src/org/mmbase/datatypes/VerifyEmailProcessor.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- VerifyEmailProcessor.java   3 Feb 2008 17:45:39 -0000       1.6
+++ VerifyEmailProcessor.java   12 Jun 2008 15:07:52 -0000      1.7
@@ -15,7 +15,7 @@
 import org.mmbase.storage.search.*;
 import org.mmbase.util.functions.*;
 import org.mmbase.util.*;
-import org.mmbase.util.transformers.Base64;
+import org.mmbase.util.transformers.*;
 import org.mmbase.datatypes.processors.*;
 import javax.mail.internet.*;
 import java.util.*;
@@ -39,7 +39,7 @@
  *
  *
  * @author Michiel Meeuwissen
- * @version $Id: VerifyEmailProcessor.java,v 1.6 2008/02/03 17:45:39 nklasens 
Exp $
+ * @version $Id: VerifyEmailProcessor.java,v 1.7 2008/06/12 15:07:52 michiel 
Exp $
 
  */
 
@@ -211,12 +211,20 @@
         return false;
     }
 
+    private static CharTransformer stripper;
+    static {
+        TagStripperFactory fac = new TagStripperFactory();
+        stripper = (CharTransformer) 
fac.createTransformer(fac.createParameters());
+    }
     public void commit(Node node, Field field) {
         if (log.isDebugEnabled()) {
             log.debug("Commit for " + node + " " + emailField + " " + 
node.getChanged());
         }
         if ((node.getChanged().contains(emailField) && ! 
node.getChanged().contains(field.getName())) || node.isNew()) {
             String email = node.getStringValue(emailField);
+            if ("".equals(email)) {
+                log.debug("Email field is empty, cannot confirm that");
+            } else {
             log.service("Sending confirmation email to '" + email + "'");
             String key = generateKey();
             String encryptedKey = encryptKey(node, field, key);
@@ -228,7 +236,7 @@
             if (originalValue != null) {
                 node.setValueWithoutProcess(emailField, originalValue);
             }
-;
+                ;
             log.debug("Setting " + key + SEP + email + " in " + field);
 
 
@@ -293,14 +301,28 @@
             u.append("signature=" + encryptedKey);
 
             emailNode.setStringValue(toField, email);
-            emailNode.setStringValue(bodyField,    
MessageFormat.format(emailTemplate.getString("body"), encryptedKey, 
u.toString(), include.toString()));
+                String bodyHtml = 
MessageFormat.format(emailTemplate.getString("body"), encryptedKey, 
u.toString(), include.toString());
+
+                String body = "<multipart id=\"plaintext\" type=\"text/plain\" 
encoding=\"UTF-8\">\n" +
+                    stripper.transform(bodyHtml) +
+                    "\n</multipart>\n" +
+                    "<multipart alt=\"plaintext\" type=\"text/html\" 
encoding=\"UTF-8\">\n" +
+                    bodyHtml +
+                    "\n</multipart>\n";
+
+                emailNode.setStringValue(bodyField, body);
             emailNode.setStringValue(subjectField, 
MessageFormat.format(emailTemplate.getString("subject"), encryptedKey));
 
 
             String from = emailTemplate.getString("from");
             emailNode.setStringValue(fromField, from);
 
+                try {
             emailNode.commit();
+                } catch (Exception e) {
+                    log.error(e);
+                    emailNode.delete();
+                }
 
             emailNode = cloud.getNode(emailNode.getNumber());
             try {
@@ -310,6 +332,7 @@
                 log.debug("No function 'startmail', assuming that the mail 
builder mailed on commit");
             }
         }
+        }
 
     }
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to