我正试图从我工作的公司的网站上发送一份通讯。为此,我使用SwiftMailer SMTP传输。我正在用PHP构建发送机制和所有内容,运行在带有IIS 7.5的Windows 2008服务器上(我认为)。
我们的服务器company.fac.university.com位于托管我们的大学教员的网络中,fac.university.com。大学SMTP服务器,mail.fac.university.com,是网络上唯一没有防火墙通过标准电子邮件端口发送的服务器;因此,我的mail.fac.university.com脚本使用大学凭据连接到mail.fac.university.com进行身份验证。
到目前一切尚好。
问题是通过这个脚本发送电子邮件是非常缓慢的。每封邮件大约需要10秒才能发送。我调整了标准的SwiftMailer日志插件,使其不仅输出原始的SMTP通信,而且还显示每个单独消息的时间戳。这向我表明,除了向SMTP服务器发送数据的实际操作之外,一切看起来都非常快速和正常。不管出于什么原因,这需要10秒(有点-在10到11秒之间)。
SMTP输出如下所示:
16:08:26 ++ Starting Swift_SmtpTransport
16:08:26 << 220 mail.fac.university.com Servername Enterprise mailer (ver. 3.9)
16:08:26 >> EHLO company.fac.university.com
16:08:26 << 250-mail.fac.university.com 250-PIPELINING 250-SIZE 37748736 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
16:08:26 >> STARTTLS
16:08:26 << 220 2.0.0 Ready to start TLS
16:08:26 >> EHLO company.fac.university.com
16:08:26 << 250-mail.fac.university.com 250-PIPELINING 250-SIZE 37748736 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
16:08:26 >> AUTH LOGIN
16:08:26 << 334 VXNlcm5hbWU6
16:08:26 >> bnB3NDM1QGt1LmRr
16:08:26 << 334 UGFzc3dvcmQ6
16:08:26 >> U2hhaGFiMTIz
16:08:26 << 235 2.7.0 Authentication successful
16:08:26 ++ Swift_SmtpTransport started
16:08:26 >> MAIL FROM: <mail@company.com>
16:08:26 << 250 2.1.0 Ok
16:08:26 >> RCPT TO: <my@email.address>
16:08:26 << 250 2.1.5 Ok
16:08:26 >> DATA
16:08:26 << 354 End data with <CR><LF>.<CR><LF>
16:08:37 >> .
16:08:37 << 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B11D200A0A0
16:08:37 >> MAIL FROM: <mail@company.com>
16:08:37 << 250 2.1.0 Ok
16:08:37 >> RCPT TO: <my.other@email.address>
16:08:37 << 250 2.1.5 Ok
16:08:37 >> DATA
16:08:37 << 354 End data with <CR><LF>.<CR><LF>
16:08:47 >> .
16:08:47 << 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as B4F9E200A0A0
16:08:47 >> MAIL FROM: <mail@company.com>
16:08:47 << 250 2.1.0 Ok
16:08:47 >> RCPT TO: <my.third@email.address
16:08:47 << 250 2.1.5 Ok
16:08:47 >> DATA
16:08:47 << 354 End data with <CR><LF>.<CR><LF>
16:08:57 >> .
16:08:57 << 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as DA987200A0A0
16:08:57 ++ Stopping Swift_SmtpTransport
16:08:57 >> QUIT
16:08:57 << 221 2.0.0 Bye
16:08:57 ++ Swift_SmtpTransport stopped(<<的意思是“从SMTP服务器接收的消息”,>>的意思是“发送到SMTP服务器的消息”)。
我尝试过使用phpMailer,甚至使用PHP作为后盾,没有任何改变。我还尝试过在我连接的端口之间切换,使用或不使用TLS/SSL等等--没有任何更改。我发送的电子邮件是多部分(HTML +纯文本),大小约为5 KB。我试着把它压缩成一个大小小于100个字节的简单纯文本邮件,这也没有任何区别。
作为邮件服务器世界中的一个相对n00b,我在这里几乎是智囊团。大学服务器在节流脚本吗?(那么,为什么我自己发送的速度慢,而不是服务器的回复呢?)
什么能解释这种延迟呢?我能修好它吗?如果是的话,怎么做?
发布于 2016-09-14 11:24:00
事实证明,大学服务器确实(某种程度上)控制了连接。它在发送邮件之前对每个电子邮件运行各种形式的垃圾邮件和病毒测试,而不是立即接受电子邮件进入内部队列并在那里处理,而是等到处理完成后才返回SMTP回复。
因此,解决方案(在IT部门经历了许多令人沮丧的事情之后)是授权通过我们服务器上的脚本发送邮件,以绕过垃圾邮件和病毒检查。
https://stackoverflow.com/questions/38380076
复制相似问题