You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by sg...@apache.org on 2009/04/05 22:14:13 UTC
svn commit: r762147 - in /commons/proper/email/trunk/src:
java/org/apache/commons/mail/Email.java
test/org/apache/commons/mail/EmailLiveTest.java
Author: sgoeschl
Date: Sun Apr 5 20:14:13 2009
New Revision: 762147
URL: http://svn.apache.org/viewvc?rev=762147&view=rev
Log:
[EMAIL-79] SimpleEmail#setMsg() with UTF-8 content honors correct charset in header and encode the content correctly.
Modified:
commons/proper/email/trunk/src/java/org/apache/commons/mail/Email.java
commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java
Modified: commons/proper/email/trunk/src/java/org/apache/commons/mail/Email.java
URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/java/org/apache/commons/mail/Email.java?rev=762147&r1=762146&r2=762147&view=diff
==============================================================================
--- commons/proper/email/trunk/src/java/org/apache/commons/mail/Email.java (original)
+++ commons/proper/email/trunk/src/java/org/apache/commons/mail/Email.java Sun Apr 5 20:14:13 2009
@@ -325,6 +325,18 @@
public void setContent(Object aObject, String aContentType)
{
this.content = aObject;
+ this.updateContentType(aContentType);
+ }
+
+
+ /**
+ * Update the contentType.
+ *
+ * @param aContentType aContentType
+ * @since 1.2
+ */
+ public void updateContentType(final String aContentType)
+ {
if (EmailUtils.isEmpty(aContentType))
{
this.contentType = null;
@@ -1070,17 +1082,23 @@
}
}
- // ========================================================
- // Start of replacement code
+ // update content type (and encoding)
+ this.updateContentType(this.contentType);
+
if (this.content != null)
{
this.message.setContent(this.content, this.contentType);
}
- // end of replacement code
- // ========================================================
else if (this.emailBody != null)
{
- this.message.setContent(this.emailBody);
+ if (this.contentType == null)
+ {
+ this.message.setContent(this.emailBody);
+ }
+ else
+ {
+ this.message.setContent(this.emailBody, this.contentType);
+ }
}
else
{
Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java
URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java?rev=762147&r1=762146&r2=762147&view=diff
==============================================================================
--- commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java (original)
+++ commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java Sun Apr 5 20:14:13 2009
@@ -26,12 +26,6 @@
import javax.mail.internet.InternetAddress;
import org.apache.commons.mail.settings.EmailConfiguration;
-import org.apache.commons.mail.BaseEmailTestCase;
-import org.apache.commons.mail.HtmlEmail;
-import org.apache.commons.mail.EmailAttachment;
-import org.apache.commons.mail.Email;
-import org.apache.commons.mail.DefaultAuthenticator;
-import org.apache.commons.mail.EmailUtils;
/**
* This are regression test sending REAL email to REAL mail
@@ -148,7 +142,7 @@
textMsg = "Your email client does not support HTML messages";
cid = htmlEmail3.embed(imageUrl, "Apache Logo");
htmlMsg = "<html><b>This is a HTML message with an inline image - <img src=\"cid:"
- + cid + "\"> ...</b><html>";
+ + cid + "\"> and NO attachment</b><html>";
htmlEmail3.setSubject( "[email] 3.Test: text + html content + inline image");
htmlEmail3.setFrom(EmailConfiguration.TEST_FROM);
@@ -193,7 +187,7 @@
/**
* This test checks the correct character encoding when sending
- * non-ASCII content.
+ * non-ASCII content using SimpleEmail.
*
* https://issues.apache.org/jira/browse/EMAIL-79
*
@@ -205,8 +199,8 @@
// U+03B2 : GREEK SMALL LETTER BETA
// U+03B3 : GREEK SMALL LETTER GAMMA
- final String subject = "My test subject with three greek UTF-8 characters : \u03B1\u03B2\u03B3";
- final String content = "My body with with three greek UTF-8 characters : \u03B1\u03B2\u03B3";
+ final String subject = "[email] 5.Test: Subject with three greek UTF-8 characters : \u03B1\u03B2\u03B3";
+ final String textMsg = "My test body with with three greek UTF-8 characters : \u03B1\u03B2\u03B3";
SimpleEmail email = new SimpleEmail();
email.setDebug(true);
@@ -216,7 +210,7 @@
email.addTo(EmailConfiguration.TEST_TO);
email.setFrom(EmailConfiguration.TEST_FROM);
email.setSubject(subject);
- email.setMsg(content);
+ email.setMsg(textMsg);
email.setCharset("utf-8");
if( EmailConfiguration.MAIL_FORCE_SEND ) {
@@ -229,13 +223,12 @@
EmailUtils.writeMimeMessage( new File("./target/test-emails/correct-encoding.eml"), email.getMimeMessage());
System.out.println("Encoding: " + email.getMimeMessage().getEncoding());
- System.out.println("Type: " + email.getMimeMessage().getContentType());
-
+ System.out.println("Type: " + email.getMimeMessage().getContentType());
+
if( EmailConfiguration.MAIL_FORCE_SEND ) {
// the encoding is only set when sending the email
- // the patch is currently broken ....
- // assertEquals(email.getMimeMessage().getEncoding(), "quoted-printable");
- // assertEquals(email.getMimeMessage().getContentType(), "text/plain; charset=UTF-8");
+ assertEquals(email.getMimeMessage().getEncoding(), "quoted-printable");
+ assertEquals(email.getMimeMessage().getContentType(), "text/plain; charset=UTF-8");
}
- }
+ }
}
\ No newline at end of file