Mail API停止工作

时间:2014-11-12 20:16:46

标签: java javax.mail

我有一个自动java邮件应用程序,当我们的数据库中发生一些重要更新时,它会向用户发送自动邮件。它工作正常。然而它开始给我错误,我意识到它不起作用。

错误说: “请通过网络浏览器登录,然后重试。  在https://support.google.com/mail/bin/answer.py?answer=78754 l10sm7526045oev.7 - gsmtp“

了解更多信息

我写的java邮件应用程序很庞大并且包含一些机密值(密码等),我决定编写一个示例演示来向您展示正在发生的事情。它给了我同样的错误。请假设已将javax.MAIL API导入到项目中。这就是我所拥有的:

public class MailDemo {

    public static void main(String[] args) {
        final String userName = "dummyEmail@gmail.com";
        final String password = "dummyPassword";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");//Smtp server address
        props.put("mail.smtp.port", "587");//port for the smtp server

        Session session = Session.getInstance(props, new Authenticator(){
        protected PasswordAuthentication getPasswordAuthentication(){
            return new PasswordAuthentication(userName, password);
        }
    });
        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("dummyEmail@gmail.com"));//from email address
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("dummyEmail@gmail.com"));//to email address
            message.setSubject("My first Email");//Subject of the mail
            message.setContent("<h1>This is a test email</h1>", "text/html; charset=utf-8");//Content of the mail
            Transport.send(message);//send the message
            System.out.println("Email Stiation:Done!");

        } catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

}

1 个答案:

答案 0 :(得分:0)

好吧,我发现了问题。实际上代码是正确的。这是gmail。它会阻止登录尝试。我认为gmail认为尝试不是真的。