【发布时间】:2020-05-18 08:27:58
【问题描述】:
当我尝试通过 javamail api 发送电子邮件时,接收的邮件会变成垃圾邮件。原因是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();
}
有办法通过吗?
谢谢
【问题讨论】:
-
垃圾邮件过滤程序使用的标准完全取决于该程序。
标签: java jakarta-mail