in src/main/java/org/apache/log4j/net/SMTPAppender.java [374:422]
void sendBuffer() {
try {
String s = formatBody();
boolean allAscii = true;
for(int i = 0; i < s.length() && allAscii; i++) {
allAscii = s.charAt(i) <= 0x7F;
}
MimeBodyPart part;
if (allAscii) {
part = new MimeBodyPart();
part.setContent(s, layout.getContentType());
} else {
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(
MimeUtility.encode(os, "quoted-printable"), "UTF-8");
writer.write(s);
writer.close();
InternetHeaders headers = new InternetHeaders();
headers.setHeader("Content-Type", layout.getContentType() + "; charset=UTF-8");
headers.setHeader("Content-Transfer-Encoding", "quoted-printable");
part = new MimeBodyPart(headers, os.toByteArray());
} catch(Exception ex) {
StringBuffer sbuf = new StringBuffer(s);
for (int i = 0; i < sbuf.length(); i++) {
if (sbuf.charAt(i) >= 0x80) {
sbuf.setCharAt(i, '?');
}
}
part = new MimeBodyPart();
part.setContent(sbuf.toString(), layout.getContentType());
}
}
Multipart mp = new MimeMultipart();
mp.addBodyPart(part);
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
} catch(MessagingException e) {
LogLog.error("Error occured while sending e-mail notification.", e);
} catch(RuntimeException e) {
LogLog.error("Error occured while sending e-mail notification.", e);
}
}