diff options
author | James Moger <james.moger@gitblit.com> | 2013-03-29 12:11:05 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2013-03-29 12:11:05 -0400 |
commit | ffe9bd0ea959cf768983ff1a3d2de897390016d7 (patch) | |
tree | 1f62ba796e0e374a9402350342dcfb0481df195f /src | |
parent | c5d052400cd60e5b58ba7b5e1fd7706ee0676ab7 (diff) | |
download | gitblit-ffe9bd0ea959cf768983ff1a3d2de897390016d7.tar.gz gitblit-ffe9bd0ea959cf768983ff1a3d2de897390016d7.zip |
Fixed UTF-8 encoding in email notifications (issue 218)
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/gitblit/GitBlit.java | 49 | ||||
-rw-r--r-- | src/main/java/com/gitblit/MailExecutor.java | 13 | ||||
-rw-r--r-- | src/test/java/com/gitblit/tests/MailTest.java | 5 |
3 files changed, 29 insertions, 38 deletions
diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java index 65dc559c..83769d36 100644 --- a/src/main/java/com/gitblit/GitBlit.java +++ b/src/main/java/com/gitblit/GitBlit.java @@ -54,6 +54,8 @@ import java.util.concurrent.atomic.AtomicReference; import javax.mail.Message;
import javax.mail.MessagingException;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMultipart;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
@@ -2580,17 +2582,8 @@ public class GitBlit implements ServletContextListener { }
// send an email, if possible
- try {
- Message message = mailExecutor.createMessageForAdministrators();
- if (message != null) {
- message.setSubject("Federation proposal from " + proposal.url);
- message.setText("Please review the proposal @ " + gitblitUrl + "/proposal/"
- + proposal.token);
- mailExecutor.queue(message);
- }
- } catch (Throwable t) {
- logger.error("Failed to notify administrators of proposal", t);
- }
+ sendMailToAdministrators("Federation proposal from " + proposal.url,
+ "Please review the proposal @ " + gitblitUrl + "/proposal/" + proposal.token);
return true;
}
@@ -2877,16 +2870,8 @@ public class GitBlit implements ServletContextListener { * @param message
*/
public void sendMailToAdministrators(String subject, String message) {
- try {
- Message mail = mailExecutor.createMessageForAdministrators();
- if (mail != null) {
- mail.setSubject(subject);
- mail.setText(message);
- mailExecutor.queue(mail);
- }
- } catch (MessagingException e) {
- logger.error("Messaging error", e);
- }
+ List<String> toAddresses = settings.getStrings(Keys.mail.adminAddresses);
+ sendMail(subject, message, toAddresses);
}
/**
@@ -2916,7 +2901,16 @@ public class GitBlit implements ServletContextListener { Message mail = mailExecutor.createMessage(toAddresses);
if (mail != null) {
mail.setSubject(subject);
- mail.setText(message);
+
+ MimeBodyPart messagePart = new MimeBodyPart();
+ messagePart.setText(message, "utf-8");
+ messagePart.setHeader("Content-Type", "text/plain; charset=\"utf-8\"");
+ messagePart.setHeader("Content-Transfer-Encoding", "quoted-printable");
+
+ MimeMultipart multiPart = new MimeMultipart();
+ multiPart.addBodyPart(messagePart);
+ mail.setContent(multiPart);
+
mailExecutor.queue(mail);
}
} catch (MessagingException e) {
@@ -2951,7 +2945,16 @@ public class GitBlit implements ServletContextListener { Message mail = mailExecutor.createMessage(toAddresses);
if (mail != null) {
mail.setSubject(subject);
- mail.setContent(message, "text/html");
+
+ MimeBodyPart messagePart = new MimeBodyPart();
+ messagePart.setText(message, "utf-8");
+ messagePart.setHeader("Content-Type", "text/html; charset=\"utf-8\"");
+ messagePart.setHeader("Content-Transfer-Encoding", "quoted-printable");
+
+ MimeMultipart multiPart = new MimeMultipart();
+ multiPart.addBodyPart(messagePart);
+ mail.setContent(multiPart);
+
mailExecutor.queue(mail);
}
} catch (MessagingException e) {
diff --git a/src/main/java/com/gitblit/MailExecutor.java b/src/main/java/com/gitblit/MailExecutor.java index 9001e836..54ff8b82 100644 --- a/src/main/java/com/gitblit/MailExecutor.java +++ b/src/main/java/com/gitblit/MailExecutor.java @@ -110,19 +110,6 @@ public class MailExecutor implements Runnable { return session != null;
}
- /**
- * Creates a message for the administrators.
- *
- * @returna message
- */
- public Message createMessageForAdministrators() {
- List<String> toAddresses = settings.getStrings(Keys.mail.adminAddresses);
- if (toAddresses.size() == 0) {
- logger.warn("Can not notify administrators because no email addresses are defined!");
- return null;
- }
- return createMessage(toAddresses);
- }
/**
* Create a message.
diff --git a/src/test/java/com/gitblit/tests/MailTest.java b/src/test/java/com/gitblit/tests/MailTest.java index 05d55a24..4feedb06 100644 --- a/src/test/java/com/gitblit/tests/MailTest.java +++ b/src/test/java/com/gitblit/tests/MailTest.java @@ -22,6 +22,7 @@ import javax.mail.Message; import org.junit.Test;
import com.gitblit.FileSettings;
+import com.gitblit.Keys;
import com.gitblit.MailExecutor;
public class MailTest {
@@ -30,9 +31,9 @@ public class MailTest { public void testSendMail() throws Exception {
FileSettings settings = new FileSettings("mailtest.properties");
MailExecutor mail = new MailExecutor(settings);
- Message message = mail.createMessageForAdministrators();
+ Message message = mail.createMessage(settings.getStrings(Keys.mail.adminAddresses));
message.setSubject("Test");
- message.setText("this is a test");
+ message.setText("Lägger till andra stycket i ny fil. UTF-8 encoded");
mail.queue(message);
mail.run();
|