gpt4 book ai didi

java - JavaMail : MessagingException: Got bad greeting from SMTP host — Error Code 250

转载 作者:行者123 更新时间:2023-12-03 12:05:37 24 4
gpt4 key购买 nike

要求:
-仅允许与邮件服务器的1个连接(我的客户的限制)
-发送邮件后不要关闭连接,通过现有连接重新发送邮件(性能更好,因为每个邮件都不需要transport.connect())
-通过该连接发送所有邮件
-如果连接失败,请重新连接,然后发送邮件
-Java 1.6

我的代码运行良好,但有时会收到带有错误代码javax.mail.MessagingException250: Got bad greeting from SMTP host
嵌套异常java.net.SocketException: Socket closed:

这是我的客户代码,该行已标记,并引发了异常:

// the mail service is a singleton and has one property to store the transport
// object that gets initialized when the singleton instance gets created:
private Transport transport = null;

// props, authU, authP and msg are all passed as a parameter to the sending method:
if (transport == null) {
Session session = Session.getInstance(props, null);
transport = session.getTransport("smtp");
}
if(!transport.isConnected()) {
transport.connect(authU, authP); // <<<<< This line throws the exception !
}
transport.sendMessage(msg, msg.getAllRecipients());

显然 transport.isConnected()没有检测到连接,但是connection()不会重新打开或重新创建套接字。我的假设是它将为我完成所有必要的工作。

是否有适当的客户端解决方案来确保不会引发异常?
解决方法是捕获异常并重新发送邮件,但我不喜欢解决方法...

最佳答案

您所描述的解决方法实际上是正确的方法。

在调用isConnected方法的时间与调用sendMessage方法的时间之间,并没有阻止服务器断开连接的操作,因此在最坏的情况下,您始终必须准备处理异常。

关于java - JavaMail : MessagingException: Got bad greeting from SMTP host — Error Code 250,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520875/

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