【问题标题】:JavaMail Exception : STOREDRV.Submission.Exception:OutboundSpamExceptionJavaMail 异常:STOREDRV.Submission.Exception:OutboundSpamException
【发布时间】:2017-01-17 09:23:44
【问题描述】:

我使用 java mail API 从 Gmail、Hotmail 和 Outlook 帐户发送电子邮件。它适用于 Gmail 和 Hotmail,但不适用于 Outlook

Outlook 发件人类的代码

public class OutlookSender extends javax.mail.Authenticator {


    private String mailhost = "smtp-mail.outlook.com";
    private String user;
    private String password;
    private Session session;

    static {
        Security.addProvider(new JSSEProvider());
    }

    public OutlookSender(String user, String password) {
        this.user = user;
        this.password = password;


        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", mailhost);
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.port", "587");


        session = Session.getDefaultInstance(props, this);
        session.setDebug(true);
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(user, password);
    }

    public synchronized void sendMail(String subject, String body,
                                      String sender, String recipients) throws Exception {
        MimeMessage message = new MimeMessage(session);
        DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
        message.setSender(new InternetAddress(sender));
        message.setSubject(subject);
        message.setDataHandler(handler);

        if (recipients.indexOf(',') > 0){
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));

        } else{
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));

        }
        message.saveChanges();

        //Transport trans = session.getTransport("smtp");
        Transport transport = session.getTransport("smtp");
        transport.connect(mailhost, user, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
}

发送电子邮件的代码:

OutlookSender sender = new OutlookSender("abc@outlook.com", "password");
sender.sendMail("Hello Text", "Body Text Sample", "abc@outlook.com", "zxy@gmail.com");

发送后,我从 logcat 收到异常内容:

javax.mail.MessagingException: 554-554 5.2.0 STOREDRV.Submission.Exception:OutboundSpamException; Failed to process message due to a permanent exception with message WASCL UserAction verdict is not None. Actual verdict is HipSend...

请帮助解释异常的原因以及如何解决此问题。谢谢。

【问题讨论】:

  • outlook.com 似乎认为您在发送垃圾邮件。 JavaMail debug output 显示什么?
  • @BillShannon,它什么也没显示。
  • 如果什么也没显示,说明你做的不对。

标签: android outlook smtp jakarta-mail


【解决方案1】:

这是outlook安全,需要使用web登录。 您也可以查看此邮件来解锁您的帐户。


你好, 要继续发送邮件,请登录并验证您的 Outlook.com 帐户。 这有助于我们阻止自动化程序发送垃圾邮件。 感谢您的帮助和耐心! Outlook.com 团队

【讨论】:

  • 只是为了澄清这个答案,请检查您尝试使用的帐户的收件箱,以接收来自 Outlook 团队的电子邮件,其中包含验证帐户所需的步骤
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 2016-06-12
  • 2013-10-24
相关资源
最近更新 更多