You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2005/10/12 16:35:46 UTC
svn commit: r314933 -
/cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java
Author: reinhard
Date: Wed Oct 12 07:35:43 2005
New Revision: 314933
URL: http://svn.apache.org/viewcvs?rev=314933&view=rev
Log:
- make a difference between plain text mails and mails that
have a multi-part body --> if the mail-body has set the
mime-type "text/plain", the message body isn't send as
body part but as simple content (avoids getting a plain
text-message without attachment being marked as mail with
attachement)
Modified:
cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java
Modified: cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java?rev=314933&r1=314932&r2=314933&view=diff
==============================================================================
--- cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java (original)
+++ cocoon/blocks/mail/trunk/java/org/apache/cocoon/mail/transformation/SendMailTransformer.java Wed Oct 12 07:35:43 2005
@@ -570,48 +570,60 @@
// decide, if to take content from source or plain text
// from variable to build mailbody
+ String messageString;
if (this.bodyURI != null) {
Source inSrc = resolver.resolveURI(this.bodyURI);
this.usedSources.add(inSrc);
InputStream inStr = inSrc.getInputStream();
byte[] byteArr = new byte[inStr.available()];
inStr.read(byteArr);
-
- String mailBody = new String(byteArr);
- messageBodyPart.setContent(mailBody, this.bodyMimeType);
+
+ messageString = new String(byteArr);
+
+ // String mailBody = new String(byteArr);
+ // this.setMessageBody(messageBodyPart, mailBody, this.bodyMimeType);
} else {
- messageBodyPart.setContent(this.body, this.bodyMimeType);
+ messageString = this.body;
+ // this.setMessageBody(messageBodyPart, this.body, this.bodyMimeType);
}
- Multipart multipart = new MimeMultipart();
- multipart.addBodyPart(messageBodyPart);
-
- // process attachments
- Iterator iterAtt = this.attachments.iterator();
-
- while (iterAtt.hasNext()) {
- AttachmentDescriptor aD = (AttachmentDescriptor) iterAtt.next();
- messageBodyPart = new MimeBodyPart();
-
- if (!aD.isTextContent()) {
- Source inputSource = null;
- DataSource dataSource = null;
-
- inputSource = resolver.resolveURI(aD.isURLSource() ? aD.strAttrSrc : aD.strAttrFile);
- this.usedSources.add(inputSource);
-
- dataSource = new SourceDataSource(inputSource, aD.strAttrMimeType, aD.strAttrName);
+ // make it a simple plain text message in the case of a set plain/text
+ // mime-type and any attachements
+ if("text/plain".equals(this.bodyMimeType) && this.attachments.size() == 0) {
+ sm.setText(messageString);
+ }
+ // add message as message body part
+ else {
+ messageBodyPart.setContent(messageString, this.bodyMimeType);
+ Multipart multipart = new MimeMultipart();
+ multipart.addBodyPart(messageBodyPart);
- messageBodyPart.setDataHandler(new DataHandler(dataSource));
- } else {
- messageBodyPart.setContent(aD.strContent, aD.strAttrMimeType);
+ // process attachments
+ Iterator iterAtt = this.attachments.iterator();
+
+ while (iterAtt.hasNext()) {
+ AttachmentDescriptor aD = (AttachmentDescriptor) iterAtt.next();
+ messageBodyPart = new MimeBodyPart();
+
+ if (!aD.isTextContent()) {
+ Source inputSource = null;
+ DataSource dataSource = null;
+
+ inputSource = resolver.resolveURI(aD.isURLSource() ? aD.strAttrSrc : aD.strAttrFile);
+ this.usedSources.add(inputSource);
+
+ dataSource = new SourceDataSource(inputSource, aD.strAttrMimeType, aD.strAttrName);
+
+ messageBodyPart.setDataHandler(new DataHandler(dataSource));
+ } else {
+ messageBodyPart.setContent(aD.strContent, aD.strAttrMimeType);
+ }
+
+ messageBodyPart.setFileName(aD.strAttrName);
+ multipart.addBodyPart(messageBodyPart);
}
-
- messageBodyPart.setFileName(aD.strAttrName);
- multipart.addBodyPart(messageBodyPart);
+ sm.setContent(multipart);
}
-
- sm.setContent(multipart);
//sm.setReturnOption(SMTPMessage.RETURN_FULL);
sm.saveChanges();