使用Python-错误发送邮件

时间:2015-07-06 06:46:14

标签: python-2.7 email

我在python中编程很新。当我尝试使用python 2.7发送电子邮件时,我收到一个错误:

from email.mime.text import MIMEText
import smtplib

msg = MIMEText("Hello There!")
msg['Subject'] = 'A Test Message'
msg['From']='kolsason7@walla.com'
msg['To'] = 'yaron148@gmail.com'
s = smtplib.SMTP('localhost')
s.sendmail('kolsason7@walla.com',['yaron148@gmail.com'],msg.as_string())
print("Message Sent!")

  File "C:\Python27\ArcGISx6410.3\lib\socket.py", line 571, in create_connection
raise err
error: [Errno 10061] 
>>> 

4 个答案:

答案 0 :(得分:1)

here

中引用此内容
  

这是因为您还没有打开要连接的端口,   什么都没有在那里听。如果您正在尝试连接到网络或   ftp服务器,先启动它。如果您正在尝试连接到另一个人   port,你也需要编写一个服务器应用程序。

并查看类似已解决的问题here

答案 1 :(得分:0)

你的smtp服务器被设置为localhost,你确定它是对的吗? 错误是"连接开放"。 您可能必须为您正在使用的SMTP服务器找到用户名/密码/地址/端口组合。

答案 2 :(得分:0)

您使用的代码段并非设计为在Windows上运行,而是设计为在Linux上运行,其中(通常)服务侦听localhost上的端口25。

对于Windows,您需要先连接到实际的邮件服务器,然后才能发送邮件。

答案 3 :(得分:0)

import smtplib
from smtplib import SMTP       

try:
    sender = 'xxx@gmail.com'
    receivers = ['xxx.com']

    message = """ this message sending from python
    for testing purpose
    """
    smtpObj = smtplib.SMTP(host='smtp.gmail.com', port=587)
    smtpObj.ehlo()
    smtpObj.starttls()
    smtpObj.ehlo()
    smtpObj.login('xxx','xxx')
    smtpObj.sendmail(sender, receivers, message)
    smtpObj.quit()
    print "Successfully sent email"
    except smtplib.SMTPException,error:
    print str(error)
    print "Error: unable to send email"

如果您运行此代码,您会看到一条错误消息,说明谷歌不允许您通过代码登录

gmail中要改变的事情:

1.登录gmail

2.转到此链接https://www.google.com/settings/security/lesssecureapps

3.单击“启用”,然后重试代码

希望有所帮助:)

但如果你启用它就会有安全威胁