我在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]
>>>
答案 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.单击“启用”,然后重试代码
希望有所帮助:)
但如果你启用它就会有安全威胁