2016-09-21 87 views
-1

我试图在python中发送一封电子邮件,但是当我将它作为函数在大型程序中运行时或者在解释器中运行时,程序崩溃。用Python发送电子邮件时发生崩溃2.7.10

import smtplib 

from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

fromaddr = "[email protected]" 
toaddr = "[email protected]" 
msg = MIMEMultipart() 
msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "Hi there" 

body = "example" 
msg.attach(MIMEText(body, 'plain')) 

server = smtplib.SMTP('smtp.gmail.com', 587) 
server.starttls() 
server.login(fromaddr, "Password") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

在解释,似乎失败,server = smtplib.SMTP('smtp.gmail.com', 587)

任何想法?

+3

请将完整的错误追溯添加到您的问题! –

回答

0

我的标准建议(因为我是开发者)是yagmail

安装:pip install yagmail

然后:

import yagmail 
yag = yagmail.SMTP(fromaddr, "pasword") 
yag.send(toaddr, "Hi there", "example") 

很多东西都可以用包装,如HTML电子邮件,添加附件,避免不必编写密码在你的脚本变得更加容易。

要了解所有这些(以及更多,对于陈词滥调抱歉)的说明,请查看readme on github

0

这是因为您在尝试连接Google SMTP服务器时发生错误。 请注意,如果您使用的是谷歌的SMTP你应该使用:

用户名:您的Gmail地址
密码:您的Gmail密码

,你应该已经登录如果仍然出现错误,你应该。检查此列表中有什么问题:https://stackoverflow.com/a/25238515/1600523

注意:您也可以使用自己的SMTP服务器。