如何使用python -m smtpd发送邮件?

0 投票
1 回答
702 浏览
提问于 2025-04-18 15:52

我有一个Django应用程序。在我的开发环境中,这个应用在我的Mac OSX 10.9.3笔记本上运行。这个应用需要发送电子邮件。所以现在我使用以下的Python程序来模拟一个邮件服务器。

python -m smtpd -n -c DebuggingServer localhost:1025

这个邮件服务器只是把邮件内容打印到屏幕上,然后就把这些邮件丢掉了。

我希望这个服务器能够真正发送邮件,而不仅仅是把它们打印出来。有人能告诉我该怎么做吗?

1 个回答

1

DebuggingServer 只是把信息显示在标准输出上,也就是你在控制台上能看到的地方。你可以查看这个链接了解更多内容:https://docs.python.org/2/library/smtpd.html#debuggingserver-objects

创建一个新的调试服务器。参数和SMTPServer一样。消息会被丢弃,并打印在标准输出上。

如果你想直接把邮件发送到互联网,你需要通过一个配置好的邮件传输代理(MTA)服务器来发送。你可以在Django的 settings.py 文件中进行配置:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'youremail@gmail.com'
EMAIL_HOST_PASSWORD = 'yourpassword'
EMAIL_PORT = 587

你可以在这里了解更多信息:https://docs.djangoproject.com/en/dev/ref/settings/#email-backend

撰写回答