Java邮件 Gmail

5
我想通过Google的SMTP服务器在我的Java程序中发送邮件,但似乎邮件一直无法发送。请问有人可以告诉我为什么吗?
这是发送邮件的函数:
     public void sendMail(){
            String from = "xxx@gmail.com";
    String to = "xxx@hotmail.com";
    String subject = "Test";
    String message = "A test message";

    SendMail sendMail = new SendMail(from, to, subject, message);
    sendMail.send();
}

这是这个班级。
public class SendMail {
private String from;
private String to;
private String subject;
private String text;

public SendMail(String from, String to, String subject, String text){
    this.from = from;
    this.to = to;
    this.subject = subject;
    this.text = text;
}

public void send(){

    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.auth", "true");
    props.setProperty( "mail.smtp.port", "587" );
    props.put("mail.smtp.starttls.enable", "true");
    Session session = Session.getDefaultInstance(props);

    new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(from, "MyPasswordGoesHere");
    }
      };

  try {
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject);
    message.setText(text);

    Transport.send(message);
    System.out.println("message sent successfully");
    } catch (MessagingException e) {
    throw new RuntimeException(e);
     }
      }
        }

提前感谢!

它是否会引发任何错误,还是默默无语地结束?将SMTP调试设置打开以查看客户端的操作。 - Alfabravo
检查一下,可能会对你有所帮助... http://www.javabeat.net/2007/10/sending-mail-from-java/ - NoNaMe
@sf shah 我用那个作为例子,但它没有结束,只是卡在了“Transport.send(message);”这一行。 - Nick
2个回答

5

0
我的博客文章中,我试图举例说明如何使用Java通过Gmail的SMTP服务器发送电子邮件。这里有两个示例代码。其中一个使用Java Mail API,而另一个则利用了Apache Commons Mail库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接