无法使用python脚本连接到SMTP服务器

时间:2013-01-11 07:12:21

标签: python python-3.x

以下是我的脚本连接到SMTP服务器并发送邮件。

from smtplib import SMTP
import datetime

debuglevel = 0

smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('smtp.gmail.com', 26)
smtp.login('ashwini.jena@gmail.com', 'Pa***wd')

from_addr = "Ashwin<ashwini.jena@gmail.com>"
to_addr = "foo@bar.com"

subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )

message_text = "Hello\nThis is a mail from your server\n\nBye\n"

msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s"%( from_addr, to_addr, subj, date, message_text )

smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()

但它会引发以下错误: -

Traceback (most recent call last):
  File "C:\Python33\Bidhoo.py", line 15, in <module>
    smtp.connect('smtp.gmail.com', 26)
  File "C:\Python33\lib\smtplib.py", line 317, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Python33\lib\smtplib.py", line 288, in _get_socket
    self.source_address)
  File "C:\Python33\lib\socket.py", line 424, in create_connection
    raise err
  File "C:\Python33\lib\socket.py", line 415, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

请帮我找出此错误的根本原因。任何人都可以共享备用代码以连接到SMTP ..

1 个答案:

答案 0 :(得分:2)

我认为这在smtp.connect线上失败了吗?您可以通过在Python解释器中逐行运行脚本来验证这一点。

失败的原因是端口号不正确。而不是26,尝试587,看看会发生什么。

smtp.connect('smtp.gmail.com', 587)

至于替代脚本,我通过Google搜索找到了一些脚本。这是one