我如何知道为什么Gmail似乎拒绝来自我的特定IP范围的连接?
当我试图通过smtp.gmail.com发送电子邮件时,使用Django中的邮件工具,在Amazon的EC2服务上的Linux机器上运行时,出现“连接超时”错误。
奇怪的是,我可以使用sendmail发送邮件,但最初得到相同的超时错误,然后回退到另一个接受连接的服务器,例如
~$ echo -e "Subject:test subject\ntest body\n" | sendmail -v myuser@mydomain Loading lookup modules from /usr/lib/exim/4.72-1.fc13/lookups Loaded 0 lookup modules LOG: MAIN <= app@domain U=app P=local S=443 Loading lookup modules from /usr/lib/exim/4.72-1.fc13/lookups Loaded 0 lookup modules delivering 1ReChV-0001Hx-Ss Connecting to aspmx.l.google.com [74.125.93.26]:25 ... failed: Connection timed out (timeout=5m) LOG: MAIN aspmx.l.google.com [74.125.93.26] Connection timed out Connecting to ALT1.aspmx.l.google.com [173.194.66.26]:25 ... connected
这只是从亚马逊的云发生。 我可以从我的本地连接到smtp.gmail.com使用相同的凭据,并发送电子邮件就好了。 我可以从任何地方ping smtp.gmail.com,所以它似乎不是一个路由或防火墙的问题。
Google在他们的状态仪表板上没有列出任何问题。
有问题的服务器发送的电子邮件数量非常低(每天10-20个),所以如果被标记为垃圾邮件,我会感到惊讶。
从EC2实例发送电子邮件只是不是一个好主意,除非您将电子邮件交给专门同意接受您的邮件的邮件服务器。 有多种原因,但主要的原因是EC2的IP地址是dynamic的,而且邮件服务器必须处于静态IP地址才能接受反弹。
基本上,如果你想发送邮件,你需要将它发送到一个真正的邮件服务器,负责将邮件发送到目的地。 亚马逊提供这种服务,以静态IP地址托pipe真实邮件服务器。
大多数时候,我发现邮件服务器类似的问题(从提供的日志,我明白,你连接到ALT1.aspmx.l.google.com,但邮件不发送)禁用TCP窗口缩放有助于绕过(而不是解决)问题。
我不知道你在EC2上运行什么操作系统,但是如果是Linux,你可以尝试添加:
net.ipv4.tcp_rmem = 4096 87380 174760 net.ipv4.tcp_wmem = 4096 16384 131072 net.ipv4.tcp_window_scaling = 0
在/etc/sysctl.conf中,然后运行sysctl -p。
当他们的自动化保护系统怀疑可疑活动时,我发现Googlelocking了帐户/ IP地址/ ActiveSync等。
即,使用Outlook和POP / SMTP的用户突然无法使用Outlooklogin。
要“解锁”一个IP,您可以使用网站gmail.com从该IPlogin到GMail帐户,该帐户通常会在几分钟内好起来。
否则,Google技术支持部门曾经指示我访问https://www.google.com/accounts/UnlockCaptcha或http://www.google.com/a/your_domain.com/UnlockCaptcha获取ActiveSynclocking的帐户,把它带回来。
有关详细信息,请参阅此处: http : //www.gmailhelp.com/2009/10/unlocking-googles-gmail-captcha/
问题似乎已经解决了。 由于我仍然可以使用其他Google服务器发送电子邮件,所以我怀疑这是我的服务器和Google之间的一些小的networking问题。