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