python发送邮件
1.通过python发邮件步骤:
前提:开通了第三方授权,可以使用smtp服务
1.创建smtp对象
2.连接smtp服务器,默认端口号都是25
3.登陆自己的邮箱账号
4.调用发送消息函数,参数:发件人、收件人、消息内容
5.关闭连接
2.邮件消息注册:
首先创建一个消息对象:
msg = email.mime.multipart.MIMEMultipart() #通过这个类创建消息
msg['from'] = '[email protected]'
msg['to'] = '[email protected];[email protected];[email protected]'
msg['subject'] = 'aji111‘
分别指明邮件的发件人,收件, 只代表显示的问题,如下图:
3.消息内容:
首先,先定义一个字符串,来表示你得消息内容:
context= ‘’’hello world’’’ ## 正文
txt = email.mime.text.MIMEText(_text=content, _subtype="html") ## 定义文本以后,标明将context指定成什么格式,html,txt
msg.attach(txt) ## 再注册到消息中
_subtype 这个参数就决定了,你是以html解析的形式去发送,还是以text的形式去发送。
准备文件:
(1)测试配置文件:
文件1:message.conf (配置文件)
From = [email protected] To = [email protected],[email protected],[email protected],[email protected],[email protected] Subject = '测试邮件' message = '''大家好: 测试邮件 测试邮件 以上 谢谢 '''
(2)读取文件conf文件工具,并测试
文件2:util.py (工具文件)
import codecs import re fileName = "message.conf" def getProperty(property): with codecs.open(fileName, encoding="utf-8") as f: if property != "message": for line in f.readlines(): if line.startswith("{0} = ".format(property)): value = line.split("{0} = ".format(property))[1] print value.strip('\n') return value.strip('\n') else: reg = re.compile(r"message = '''((.*\n)*)'''") result = reg.findall(f.read()) print result[0][0] return result[0][0] getProperty("From") getProperty("To") getProperty("Subject") getProperty("message")
文件2 调用 文件1 的参数,获得到对应的值,测试结果如图:
测试完成后,注销输出信息和调用函数
(3)发送邮件脚本
3.文件:sendtext.py (邮件脚本文件)
import email.mime.multipart import email.mime.text import email.header from util import getProperty import smtplib #消息内容 msg = email.mime.multipart.MIMEMultipart() sendFrom = getProperty("From") sendTo = getProperty("To") sendSubject = getProperty("Subject") sendMessage = getProperty("message") msg["From"] = sendFrom msg["To"] = sendTo msg['Subject'] = email.header.Header(sendSubject) text = email.mime.text.MIMEText(sendMessage, 'plain', 'utf-8') msg.attach(text) #发送 smtp = smtplib.SMTP_SSL("smtp.qq.com", 465) smtp.login('[email protected]', 'xrusbcaae') smtp.sendmail(sendFrom, sendTo.split(","), msg.as_string()) smtp.quit()
执行发送邮件:
原文地址:http://blog.51cto.com/286577399/2059237