以编程方式发送邮件不起作用

时间:2014-10-15 07:55:10

标签: java gmail-api

我已经写了以下代码来发送邮件 以前它工作但现在它不再工作了。
有人可以帮我解决我的问题吗?

public void send(String to, String subject, String msg,final String user,
            final String pass) {

    Properties props = new Properties();

    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");

    Session session = Session.getInstance(props,new GmailAuthenticator(user, pass));

    try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(user));
        message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));

        String msgBody = GetUserPassword(userid);
        message.setSubject(subject);
        message.setText(msg);

        // 3rd step)send message
        Transport.send(message);

        System.out.println("Done");

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

}

1 个答案:

答案 0 :(得分:0)

您可能必须使用新的"启用安全性较低的应用程序"在Gmail中设置。使用oauth2令牌(使用SMTP MSA或Gmail REST API)比使用密码存储+更好,并且不需要在Gmail中禁用该安全检查。