gpt4 book ai didi

smtp - JavaMail SMTPSendFailedException

转载 作者:行者123 更新时间:2023-12-02 08:52:12 25 4
gpt4 key购买 nike

我正在使用 JavaMail api 编写群发电子邮件程序。我有一个 Microsoft Exhange 服务器,我正在尝试将电子邮件发送到该服务器。当我运行我的程序时,出现以下错误:

**com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1862)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1100)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at SendEmail.postMail(SendEmail.java:100)
at EmailGenerator.main(EmailGenerator.java:52)**

我尝试发送消息的代码部分如下:

Properties props = new Properties();
props.put("mail.smtp.host", email_server);
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", true);

class EmailAuthenticator extends Authenticator {
String user;
String pw;
EmailAuthenticator (String FROM, String PASSWORD)
{
super();
this.user = FROM;
this.pw = PASSWORD;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, pw);
}
}

Session session = Session.getInstance(props, new EmailAuthenticator(USER, PASSWORD));
session.setDebug(debug);
System.out.println("Session created");

.. CREATED MESSAGE HERE...

Transport transport = session.getTransport("smtp");
transport.connect(exchange_server,user,password);
transport.send(msg);
transport.close();

我想知道我是否缺少 Exchange 服务器端的某些配置,或者我的代码有问题?

最佳答案

好吧,我知道我哪里出了问题,并且将答案张贴出来,以防其他人可以从中获得一些值(value)。我有以下代码行:

props.put("mail.smtp.auth", true);

这告诉我的应用程序它需要向 SMTP 服务器进行身份验证,而实际上它不需要。这导致我的应用程序无法登录到 SMTP 服务器并发送电子邮件,从而产生错误消息。将此属性设置为 false 或不使用这行代码为我解决了这个问题。这行代码仅对于要求您登录的 SMTP 服务器是必需的,而我的 Exchange 服务器不需要。

关于smtp - JavaMail SMTPSendFailedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com