2017-04-24 42 views
-1

我正在学习python 3.6.0,我试图创建一个电子邮件客户端。 我从书中复制了代码,但它不起作用。 我得到这个错误:无法创建与谷歌服务器的SMTP会话

“TimeoutError:WinError 10060]连接尝试失败,因为连接的方没有正确一段时间后响应或已建立connectioñ失败,因为连接的主机没有反应”

这是我的代码:

#!/usr/bin/env python3 
# Listing 2 
import getpass 
import smtplib 
from email.mime.image import MIMEImage 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
SMTP_SERVER = 'smtp.gmail.com' 
SMTP_PORT = 587 # ssl port 465, tls port 587 
def send_email(sender, recipient): 
    """ Send email message """ 
    msg = MIMEMultipart() 
    msg['To'] = recipient 
    msg['From'] = sender 
    msg['Subject'] = input('Enter your email subject: ') 
    message = input('Enter your email message. Press Enter when finished. ') 
    part = MIMEText('text', "plain") 
    part.set_payload(message) 
    msg.attach(part) 
    # create smtp session 
    session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) 
    session.set_debuglevel(1) 
    session.ehlo() 
    session.starttls() 
    session.ehlo 
    password = getpass.getpass(prompt="Enter you email password:") 
    # login to server 
    session.login(sender, password) 
    # send mail 
    session.sendmail(sender, recipient, msg.as_string()) 
    print("You email is sent to {0}.".format(recipient)) 
    session.quit() 
if __name__ == '__main__': 
    sender = input("Enter sender email address: ") 
    recipient = input("Enter recipeint email address: ") 
    send_email(sender, recipient) 

任何人可以帮助?我错在哪里? 在此先感谢:)

回答

0

我试图运行您的代码,它似乎工作正常(我用我的帐户凭据发送电子邮件)。你应该检查你的互联网连接和防火墙。

+0

谢谢。我的连接似乎工作,我禁用防火墙,但仍然有这个错误。将继续调查... – Matt