通过JAVA中的Gmail SMTP服务器发送电子邮件

此代码有什么问题?不知何故,它进入了线路的无限循环 Transport.send(message);,没有错误消息,没有异常,也许只是无限循环(我不知道,因为我等待的时间不超过5-10分钟)


final String username = "<mail_name>";

final String password = "<password>";


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");

props.put("mail.smtp.port", "465");


Session session = Session.getInstance(props,

        new javax.mail.Authenticator() {

            protected PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication(username, password);

            }

        });


try {


    Message message = new MimeMessage(session);

    message.setFrom(new InternetAddress("<mail_from>@gmail.com"));

    message.setRecipients(Message.RecipientType.TO,

            InternetAddress.parse("<mail_to>@gmail.com"));

    message.setSubject("Test Subject");

    message.setText("Test");


    Transport.send(message);


    System.out.println("Done");


} catch (MessagingException e) {

    throw new RuntimeException(e);

}


幕布斯7119047
浏览 1311回答 3
3回答

千巷猫影

好。这比我第一次艰难一点……总结一下我得到了什么:有一个非常有用的命令:session.setDebug(true);。如果将其设置为true,则每个重要进程都将调试到控制台。我建议使用它。第二台计算机只能使用安全选项,您可以使用以下选项进行切换:Transport transport = session.getTransport("smtps");而不是不安全的smtp ... JavaMail API Transport对象还将处理端口(分别是smtp:587,smtps:465)您还可以使用Transport类的静态方法来发送消息和(保存之前,非静态sendMessage方法将不保存消息),但是这次您需要在会话创建时使用javax.mail.Authenticator,像这样:Session session = Session.getInstance(props,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new javax.mail.Authenticator() {&nbsp; &nbsp; protected PasswordAuthentication getPasswordAuthentication() {&nbsp; &nbsp; &nbsp; &nbsp; return new PasswordAuthentication("login", "password");&nbsp; &nbsp; }});1.4.2 JavaMailApi除了此版本1.4.7之外,还存在另一个异常...如果不使用它,则无法使用静态方法进行身份验证。如果使用实例方法,则可以。一台计算机拥有Maven并获得了JavaMail API的1.4.2版本。第二台计算机有一个下载的库,版本为1.4.7,我想这也弄乱了东西第一个组件是Netbeans,第二个组件是Intellij ... +1)互联网上有很多旧的,不好的示例代码,这使得正确使用此API变得更加困难。太混乱了,但是有一些基本概念应该重点关注...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java