我在我的struts项目中使用了java mail(com.sun.mail.smtp)。邮件发送成功,但收件人延迟结束邮件。需要 2 或 3 小时。
当我使用具有相同 smtp 设置的 PHP 邮件程序时,没有延迟,邮件工作正常。
有人遇到这个问题,知道原因是什么吗?
最佳答案
Javamail 不存储和转发邮件。因此,如果您已通过调用 Transport.sendMessage() 成功将电子邮件发送到邮件服务器并且没有收到错误。它位于邮件服务器上等待投递。您需要检查您设置的 smtp 服务器、用户名和密码。这些是您发送到 Transport.connect(服务器、用户名、密码)的内容。确保它们与您在 PHP 中使用的相同。如果您没有在 PHP 中设置它们,那么我敢打赌您没有使用相同的设置,因此一台服务器比另一台服务器花费的时间更长。
在 Transport.connect()、Transport.sendMessage()、Transport.close() 调用周围放置一些计时语句。看看完成该部分需要多长时间。如果花费的时间非常短,那么您就知道邮件服务器端存在错误。我敢打赌,您并不是在与您认为正在与之通信的服务器进行通信。
关于Java 邮件延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806355/