使用SMTP从Python发送邮件

我使用以下方法使用SMTP从Python发送邮件。这是一种正确的方法还是我遗漏了什么

从smtplib导入SMTP
导入日期时间
调试级别=0
smtp=smtp()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER',26)
smtp.login('[email protected]“,”密码“)
from_addr=“John Doe<[email protected]>”
地址=“[email protected]"
subc=“你好”
date=datetime.datetime.now().strftime(“%d/%m/%Y%H:%m”)
message\u text=“您好\n这是来自您的服务器的邮件\n\n邮件\n”
msg=“从:%s\n到:%s\n对象:%s\n日期:%s\n\n%s”
%(从地址到地址,主题,日期,消息文本)
smtp.sendmail(从地址到地址,消息)
smtp.quit()

我使用的脚本非常相似;我把它作为如何使用email.*模块生成MIME消息的示例发布在这里;因此,可以轻松修改此脚本以附加图片等

我依靠ISP添加日期时间标题

我的ISP要求我使用安全的smtp连接来发送邮件,我依赖smtplib模块(可在http://www1.cs.columbia.edu/~db2501/ssmtplib.py)

在脚本中,用于在SMTP服务器上进行身份验证的用户名和密码(下面给出的伪值)在源代码中以纯文本形式显示。这是一个安全弱点;但最好的选择取决于你需要(想要?)多小心地保护这些

=======================================

#/usr/local/bin/python
SMTPserver='smtp.att.yahoo.com'
发送者[email protected]_email_domain.net'
目的地=['[email protected]_email_domain.com']
用户名=“互联网服务提供商的用户名”
PASSWORD=“PASSWORD\u INTERNET\u服务\u提供商”
#text_子类型的典型值为plain、html和xml
text_子类型='plain'
content=”“”\
测试消息
"""
subject=“从Python发送”
导入系统
导入操作系统
进口稀土
从smtplib将SMTP_SSL导入为SMTP#这将调用安全SMTP协议(端口465,使用SSL)
#SMTP#从标准SMTP端口导入加密3525
#旧版本
#从email.MIMEText导入MIMEText
从email.mime.text导入MIMEText
尝试:
msg=MIMEText(内容,文本\子类型)
msg['Subject']=主语
msg['From']=sender#某些SMTP服务器会自动执行此操作,而不是全部
conn=SMTP(SMTPserver)
连接设置调试级别(错误)
conn.login(用户名、密码)
尝试:
conn.sendmail(发件人、目的地、msg.as_string())
最后:
康涅狄格州
除:
sys.exit(“邮件失败;%s“%”自定义错误”)#给出错误消息

发表评论