如何在Python中设置本地主机?

3 投票
2 回答
6746 浏览
提问于 2025-04-16 18:57

这个项目是要在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服务器。

你可能遇到以下几种问题:

  1. 你的电脑上没有SMTP服务器;
  2. 你有SMTP服务器,但它需要密码;
  3. 你的本地SMTP服务器存在,但配置不正确,或者没有设置为支持本地SMTP -> 互联网;
  4. 你电脑当前的IP或DNS设置有问题;
  5. 你从Python调用本地SMTP服务器的方式不对。

Python的SMTPlib支持使用LMTP进行授权连接,适用于第二个问题。

对于第五个问题,试试使用25号端口。

至于其他问题,你需要找到或设置一个合作的SMTP服务器。

顺便说一下,正确配置和保护一个SMTP服务器并不是一件简单的事……

撰写回答