【发布时间】:2013-02-28 23:08:06
【问题描述】:
发送邮件时出现此错误
java.lang.RuntimeException: javax.mail.SendFailedException: 发送 失败的;嵌套异常是:类 javax.mail.MessagingException: 无法连接到 SMTP 主机:smtp.gmail.com,端口:465,响应: -1
我的代码是:
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("email","password");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("email"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(this.to));
message.setSubject("Testing");
message.setText("Hey, this is the testing email.");
Transport.send(message);
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
我尝试了相同的代码,但仍然出现错误:javax.mail.MessagingException: 530 5.7.0 必须先发出 STARTTLS 命令。 4sm28216799pbn.23 - gsmtp 在 com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) 在 com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716) 在 com.sun.mail。 smtp.SMTPTransport.sendMessage(SMTPTransport.java:388) at rapid.mail.main(mail.java:60) starttls 的这一行是为什么我得到同样的错误:properties.put("mail.smtp.starttls.enable ", "真");
-
试试最新的jar版本JavaMail 1.4.7
-
没有进展同样的错误
-
将端口号改为587。