使用gmail的smtp服务器和我网站的ID发送电子邮件

时间:2011-12-12 12:09:22

标签: java email

我使用google的gmail应用程序admin@mywebsite.com为我的网站管理员创建了一个电子邮件帐户。我可以使用gmail登录网页上的凭据登录。 现在我想用java和这个id发送电子邮件

String host = "smtp.gmail.com";
    String from = "admin@mywebsite.com";
    String pass = "myPass";
    Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true"); // added this line
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", pass);
....
...
...
Session session = Session.getDefaultInstance(props, auth);
...
...
Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);

    transport.sendMessage(message, message.getAllRecipients());
    transport.close();

这是一个例外 线程“main”javax.mail.AuthenticationFailedException

中的异常

但是,当我使用gmail凭据(myid@gmail.com)尝试此操作时,它可以正常工作。 请帮我解决这个问题。提前致谢

3 个答案:

答案 0 :(得分:0)

根据What mechanism does Gmail use for user authentication?的已接受答案判断,您需要通过端口465或587连接到Google的邮件服务器,然后使用STARTTLS(可能仅限于端口587)和用户身份验证。所以你缺少的是端口465或587部分。

答案 1 :(得分:0)

  • 您是否已使用Gmail帐户设置中的“代理发送”权限对您的admin@mywebsite.com进行了身份验证?
  • 如果是,那么您可能需要将您的身份验证用户ID和密码作为您的Gmail帐户。

答案 2 :(得分:0)

你必须使用端口号来连接gmail。 TLS:587 SSL:465

你必须使用其中一个,这样你才能通过Gmail发送电子邮件。