当我尝试通过javamail api发送电子邮件时,发送给receipent的邮件变成了垃圾邮件。原因是BASE64_LENGTH_79_INF和MIME_HTML_ONLY
public void sendEmail(String to, String subject, String body, File filename ) {
String Host = "ip";
java.util.Properties props = new java.util.Properties();
props.put("mail.smtp.host", Host);
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props, null);
mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
try {
message.setFrom(new InternetAddress("some@email"));
InternetAddress[] address = {new InternetAddress(to)};
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject(subject);
BodyPart messageBodyPart = new MimeBodyPart();
// Now set the actual message
messageBodyPart.setContent(body, "text/html; charset=utf-8");
// Create a multipar message
Multipart multipart = new MimeMultipart();
// Set text message part
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
System.out.println("-----------------------------------");
System.out.println(filename.getName());
messageBodyPart.setFileName(filename.getName());
multipart.addBodyPart(messageBodyPart);
// Send the complete message parts
message.setContent(multipart);
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException ex) {
ex.printStackTrace();
}有没有办法通过这个?
谢谢
发布于 2020-05-18 23:00:44
I want to send HTML emails from my site, but Outlook is flagging them as spam中介绍了MIME_HTML_ONLY
如果对邮件正文部分进行base64编码,JavaMail将使用default of 76 bytes per line。尝试在附加邮件正文部分之前对其进行base64编码。
https://stackoverflow.com/questions/61865455
复制相似问题