我正在尝试使用 Python 发送电子邮件并使用了以下代码:
import smtplib
import datetime
SERVER = "localhost"
PORT = 1025
FROM = "me@mydevice.com"
TO = ["myemailaddress@something.com"]
SUBJECT = "test"
dt = datetime.datetime.now()
TEXT = "blabla bla @ " + str(dt)
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ",".join(TO), SUBJECT, TEXT)
server = smtplib.SMTP(SERVER, PORT)
server.sendmail(FROM, TO, message)
server.quit()
没有安装/设置任何 STMP 服务器,我只是使用了这个:
python -m smtpd -n -c DebuggingServer localhost:1025
代码似乎运行良好,没有错误,服务器甚至通知我:
---------- MESSAGE FOLLOWS ----------
From: me@mydevice.com
To: myemailaddress@something.com
Subject: test
X-Peer: 127.0.0.1
blabla bla @ 2014-01-29 14:44:37.219724
------------ END MESSAGE ------------
'myemailaddress@something.com'
当然是真实存在的电子邮件地址的表示,而 'me@mydevice.come'
是虚构的。
但是没有电子邮件到达 myemailaddress@something.com...
我是否遗漏了一些明显的东西?
我在某处读到(抱歉,但找不到了),像 gmail 这样的服务可能会阻止来自非静态 IP 地址的电子邮件。这可能是这里发生的事情吗?
根据 python documentation在 smtpd 模块上:
class smtpd.DebuggingServer(localaddr, remoteaddr)
Create a new debugging server. Arguments are as per SMTPServer.
Messages will be discarded, and printed on stdout.
所以该模块实际上并没有发送电子邮件。它在终端中打印出来。
我是一名优秀的程序员,十分优秀!