所以我尝试通过python脚本发送邮件。使用通常的接收者地址格式可以正常工作”user@domain.tld". 当我现在尝试使用带有接收者“user@[IP Address]的脚本时,我所有的调试输出看起来都很好,sendmail方法也可以工作,但是邮件始终没有收到。我通过dig从我的终端得到IP地址。在
这是我的方法,期望一个接收方作为参数(去掉一些不重要的东西并混淆真实的地址/凭证)def sendmail(receiver):
msg = MIMEText('This is the body of the mail.')
msg['From'] = email.utils.formataddr(('me', myaddr))
msg['To'] = email.utils.formataddr(('me', receiver))
msg['Subject'] = "Python Mail Script"
server = smtplib.SMTP(smtpServer, smtpPort)
try:
server.set_debuglevel(True)
# identify ourselves, prompting server for supported features
server.ehlo()
# If we can encrypt this session, do it
if server.has_extn('STARTTLS'):
server.starttls()
server.ehlo() # re-identify ourselves over TLS connection
server.login("me@...", "...")
server.sendmail("me@...", toAddr, msg.as_string())
finally:
server.quit()
向IP地址发送邮件的输出是(同样,我混淆了smtp服务器和邮件/IP地址):
^{pr2}$
有人看到错误吗?在
编辑:在大学里使用自己的smtppostfix服务器(不幸的是无法访问外部世界),并将邮件发送到邮件到达的服务器的用户@[IP-ADDRESS]。可能还有另一个迹象表明,在上述有问题的情况下,接收方的smtp服务器不允许IP地址作为目的地。在
编辑2:/var/log/邮件.log在mail.log:Sep 9 00:34:06 mail postfix/qmgr[4854]: A30168560199: from=, size=1197, nrcpt=1 (queue active)
mail.log:Sep 9 00:34:06 mail postfix/smtp[19355]: A30168560199: to=, relay=none, delay=314, delays=313/0.04/0.01/0, dsn=4.4.1, status=deferred (connect to IP-ADDRESS[IP-ADDRESS]:25: Connection refused)
mail.log:Sep 9 00:38:31 mail postfix/smtpd[19907]: warning: Illegal address syntax from my_host_where_the_python_script_runs[IP of me] in RCPT command:
因此,从我使用的SMTP服务器到收件人服务器的连接被拒绝,4分钟后,SMTP管理员说它收到了错误的语法,即使在我通过脚本发送的握手中,它说250 Ok。。。所以基本上我认为收件人SMTP拒绝它。
Thx伙计们