Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher
In directory james.mmbase.org:/tmp/cvs-serv7586

Modified Files:
      Tag: b1_5
        NewsletterPublisher.java 
Log Message:
CMSC-1305 Newsletter: add link to send email inside plain-text section


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher
See also: http://www.mmbase.org/jira/browse/CMSC-1305


Index: NewsletterPublisher.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher/NewsletterPublisher.java,v
retrieving revision 1.34.2.11
retrieving revision 1.34.2.12
diff -u -b -r1.34.2.11 -r1.34.2.12
--- NewsletterPublisher.java    24 Feb 2009 05:19:17 -0000      1.34.2.11
+++ NewsletterPublisher.java    3 Mar 2009 08:53:04 -0000       1.34.2.12
@@ -64,24 +64,20 @@
          Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
          Node newsletterEditionNode = cloud.getNode(publication.getId());
          // if needed to prompt user this validate will be remove to Action
-         String url = NewsletterUtil.getTermURL(publication.getUrl(), 
subscription.getTerms(), publication.getId());
          String originalBody  = "";
-         if("text/plain".equals(subscription.getMimeType())){
-            originalBody += url+"\n";
-         }
-         String static_html = "";
+         String static_html = null;
          if (newsletterEditionNode.getValueWithoutProcess("static_html") != 
null)
             static_html = 
(String)newsletterEditionNode.getValueWithoutProcess("static_html");
          if (StringUtils.isEmpty(static_html)) {
-            originalBody += getBody(publication, subscription);
+            originalBody = getBody(publication, subscription);
          }
          else {
             if("text/plain".equals(subscription.getMimeType())){
                OnlyText onlyText = new OnlyText();
-               originalBody += onlyText.html2Text(static_html);
+               originalBody = onlyText.html2Text(static_html);
             }
             else {
-               originalBody += static_html;
+               originalBody = static_html;
             }
 
          }
@@ -117,7 +113,12 @@
       Node newsletterPublicationNode = cloud.getNode(publication.getId());
       NodeList attachmentNodes = 
newsletterPublicationNode.getRelatedNodes("attachments");
       Multipart multipart = new MimeMultipart();
+      if("text/plain".equals(subscription.getMimeType())){
       setBody(publication, subscription, multipart,originalBody);
+      }
+      else {
+         setMultipartBody(publication, subscription, multipart,originalBody);
+      }
       setAttachment(multipart, attachmentNodes, MimeType.attachment);
       NodeList imageNodes = 
newsletterPublicationNode.getRelatedNodes("images");
       setAttachment(multipart, imageNodes, MimeType.image);
@@ -142,6 +143,31 @@
       }
    }
 
+   private void setMultipartBody(Publication publication, Subscription 
subscription, Multipart multipart,String originalBody) {
+      MimeBodyPart mdp = new MimeBodyPart();
+      Multipart subMultipart = new MimeMultipart("alternative");
+      MimeBodyPart textMdp = new MimeBodyPart();
+      MimeBodyPart htmlMdp = new MimeBodyPart();
+      try {
+         
+         String url = NewsletterUtil.getTermURL(publication.getUrl(), 
subscription.getTerms(), publication.getId());
+         textMdp.setText(url);
+         subMultipart.addBodyPart(textMdp);
+         
+         String type=subscription.getMimeType();
+         htmlMdp.addHeader("Content-Transfer-Encoding", "quoted-printable");
+         htmlMdp.setContent(originalBody, type+";charset=utf-8");
+         subMultipart.addBodyPart(htmlMdp);
+         
+         mdp.setContent(subMultipart);
+         
+         multipart.addBodyPart(mdp);
+      }
+      catch (MessagingException e) {
+         log.error(e);
+      }
+   }
+
    private void setAttachment(Multipart multipart, NodeList attachmentNodes,
                               MimeType mimeType) {
       if (attachmentNodes.size() > 0) {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to