Sendmail 错误[61] 连接被拒绝

49 投票
7 回答
60587 浏览
提问于 2025-04-16 15:29

我一直在尝试让我的应用程序把一些输出的文本发到邮箱里。为了简单起见,我把脚本单独拿出来了:

import smtplib
import sys
import os

SERVER = "localhost"

FROM = os.getlogin()
TO = [raw_input("To : ")]

SUBJECT = "Message From " + os.getlogin()

print "Message : (End with ^D)"
TEXT = ''
while 1:
    line = sys.stdin.readline()
    if not line:
        break
    TEXT = TEXT + line

# 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, message)
server.quit()

这个脚本的输出是:

    Traceback (most recent call last):
  File "/Users/christianlaustsen/Dropbox/Apps - Python/mail/smtplib_mail.py", line 32, in <module>
    server = smtplib.SMTP(SERVER)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 239, in __init__
    (code, msg) = self.connect(host, port)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 512, in create_connection
    raise error, msg
error: [Errno 61] Connection refused

所以你可以看到,连接被拒绝了。我在Mac OS X Snow Leopard上运行Python 2.6(如果这有关系的话)。

我尝试了很多地方搜索,但还是没有找到解决办法。任何帮助都将不胜感激。

7 个回答

17

用Python启动一个简单的SMTP服务器,可以这样做:

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

如果你像下面这样启动一个本地服务器:

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

记得要修改发送邮件的代码,使用这个非标准的端口号:

server = smtplib.SMTP(SERVER, 1025)
server.sendmail(FROM, TO, message)
server.quit()
16

我猜测你在本地电脑上没有安装任何SMTP服务器。

如果你的邮件内容不太重要,可以开一个Gmail账号,然后用Python通过它发送邮件

撰写回答