【问题标题】:JavaMail BASE64_LENGTH_79_INF spamJavaMail BASE64_LENGTH_79_INF 垃圾邮件
【发布时间】:2020-05-18 08:27:58
【问题描述】:

当我尝试通过 javamail api 发送电子邮件时,接收的邮件会变成垃圾邮件。原因是BASE64_LENGTH_79_INFMIME_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


【解决方案1】:

MIME_HTML_ONLY 包含在:I want to send HTML emails from my site, but Outlook is flagging them as spam

如果您对邮件正文部分进行 base64 编码,JavaMail 使用default of 76 bytes per line。在附加之前尝试对您的消息正文部分进行 base64 编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2011-01-24
    • 2014-05-19
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多