我正在尝试使用 Bill the Lizard 的代码 通过 Google Apps 发送电子邮件。我收到此错误:
Exception in thread "main" javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. f3sm9277120nfh.74
at javax.mail.Transport.send0(Transport.java:219)
at javax.mail.Transport.send(Transport.java:81)
at SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:81)
at SendMailUsingAuthentication.main(SendMailUsingAuthentication.java:44)
Bill 的代码包含下一行,这似乎与错误有关:
props.put("mail.smtp.starttls.enable","true");
但是,它没有帮助。
这些是我的导入语句:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
有谁知道这个错误?
原文由 Sergio del Amo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现了问题。以前我使用 j2ee.jar 导入 javax.mail。
我从类路径中删除了 j2ee.jar 并下载了 JavaMail 1.4.1 并将两个 jar,smtp.jar 和 mailapi.jar 放入我的类路径中。我现在使用 smtps 而不是 smtp
现在 Bill the Lizard 的代码可以工作了。