我使用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)尝试此操作时,它可以正常工作。 请帮我解决这个问题。提前致谢
答案 0 :(得分:0)
根据What mechanism does Gmail use for user authentication?的已接受答案判断,您需要通过端口465或587连接到Google的邮件服务器,然后使用STARTTLS(可能仅限于端口587)和用户身份验证。所以你缺少的是端口465或587部分。
答案 1 :(得分:0)
答案 2 :(得分:0)
你必须使用端口号来连接gmail。 TLS:587 SSL:465
你必须使用其中一个,这样你才能通过Gmail发送电子邮件。