我正在尝试用python发送电子邮件.这是我的代码.
import smtplib
if __name__ == '__main__':
SERVER = "localhost"
FROM = "sender@example.com"
TO = ["wmh1993@gmail.com"] # must be a list
SUBJECT = "Hello!"
TEXT = "This message was sent with Python's smtplib."
# Prepare actual message
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO[0], message)
server.quit()
print "Message sent!"
Run Code Online (Sandbox Code Playgroud)
这样运行没有错误,但没有发送电子邮件wmh1993@gmail.com.
问题
有一点我对这段代码不了解 - 设置FROM字段时我有什么限制?
我不得不说它来自我的电脑吗?
有什么措施可以防止我欺骗别人的电子邮件?
或者我可以自由地这样做?
这样运行没有错误,但没有电子邮件发送到wmh1993@gmail.com.
这通常意味着,邮件已传输到"localhost"上的MTA(邮件服务器),但此服务器无法将其转发给gmail.它可能试图向"sender@example.com"发送退回邮件,但也失败了.或者它成功发送了邮件,但它登陆了gmails垃圾邮件文件夹(该邮件可能会触发垃圾邮件规则,因为它缺少日期标题)
有一点我不明白这个代码 - 设置FROM字段时我有什么限制?
它必须是一个语法上有效的电子邮件地址
我不得不说它来自我的电脑吗?
没有.但这可能是为什么没有交付的问题.家用/动态/拨号IP上的计算机?gmail(以及许多其他许多提供商)不接受来自此类IP的邮件.您的邮件服务器的HELO可能是错误的,DNS设置可能不正确等等您需要检查服务器日志.您可能必须配置本地邮件服务器以通过smarthost中继邮件,而不是尝试直接联系目标服务器.
有什么措施可以防止我欺骗别人的电子邮件?
并不多,这就是为什么我们有这么多来自伪造地址的垃圾邮件.像SPF/DKIM这样的东西可以帮助一点,但SMTP协议本身不提供防止欺骗的保护.
或者我可以自由地这样做?
技术上是的.
| 归档时间: |
|
| 查看次数: |
13486 次 |
| 最近记录: |