SMTP服务器发送多封电子邮件

时间:2018-03-01 21:05:22

标签: java smtp smtpclient

我正在使用SMTP服务器并发现了一个问题。

1)SMTP服务器未关闭:在这种情况下,SMTP服务器正忙于同时连续处理电子邮件请求超过5分钟(我发送批量邮件)。在服务期间的某个时间点,它不会返回或抛出Java / JavaMail程序的任何异常。事实上,我实时经历过这种情况。如果我没有在我的代码中设置mail.smtp.timeout和mail.smtp.connectiontimeout属性,它将永远不会返回并进入无限状态。

如果我设置了mail.smtp.connectiontimeout和mail.smtp.timeout,我该怎么测试呢? 我们如何模拟/再现这种情况?有什么想法吗?

2)另一个问题是由网络问题引起的,我将请求发送到我的java代码的SMTP,并且它已排队。我不确定会发生什么(我没有java循环)但是SMTP会向同一个人发送多封电子邮件。是因为SMTP没有发回回复吗?代码是否应该在3000之后超时?

以下是我的代码

props.put("mail.smtp.timeout", 3000);
props.put("mail.smtp.connectiontimeout", 3000);
SMTPTransport transport = (SMTPTransport)session.getTransport("smtp");
/ do some message setting here /
 transport.connect(); 
             int SMTPCodeBeforeSendingMessage = transport.getLastReturnCode();
             logger.debug("Connection Code for SMTP connection after connect before sending mesasge" + SMTPCodeBeforeSendingMessage);

             transport.sendMessage(msg, msg.getAllRecipients()); 

             String SMTPresponse = transport.getLastServerResponse(); 
             logger.debug("SMTP resposne after sending message" + SMTPresponse);
             transport.close();

0 个答案:

没有答案