如何在Python中设置本地主机?
这个项目是要在Python中发送电子邮件。我可以成功地发送到,比如说“smtp.gmail.com”,但是如果我使用本地服务器(localhost)或者127.0.0.1,就会出现“errno 111,连接被拒绝”的错误。这个语句是
server = smtplib.SMTP('127.0.0.1', 8025)
备注: 我正在使用Ubuntu系统,Python版本是3.2或者2.7,具体取决于这里的朋友们更熟悉哪个,而我的编程知识可以说是有限的。
2 个回答
1
你想做的事情是把本地电脑当成一个smtp服务器。要在Ubuntu上实现这个,最简单的方法就是通过apt或synaptic安装exim4或postfix这两个软件包中的一个。
当系统提示时,确保不要让你不信任的机器使用你的电脑作为邮件中转站。默认设置应该足够安全,可以避免这个问题,同时还能让你的电脑发送邮件。
另外要注意,smtp的默认端口是25,而不是你代码示例中的8025。
1
首先,用Telnet测试一下你本地的SMTP连接。如果你需要其他的说明,可以点击这里。这样可以确认你是否能按照你想的方式连接到本地的SMTP服务器。
你可能遇到以下几种问题:
- 你的电脑上没有SMTP服务器;
- 你有SMTP服务器,但它需要密码;
- 你的本地SMTP服务器存在,但配置不正确,或者没有设置为支持本地SMTP -> 互联网;
- 你电脑当前的IP或DNS设置有问题;
- 你从Python调用本地SMTP服务器的方式不对。
Python的SMTPlib支持使用LMTP进行授权连接,适用于第二个问题。
对于第五个问题,试试使用25号端口。
至于其他问题,你需要找到或设置一个合作的SMTP服务器。
顺便说一下,正确配置和保护一个SMTP服务器并不是一件简单的事……