您的位置:首页 > 编程语言 > Python开发

48. Python 发邮件(1)

2018-01-09 23:17 267 查看
python发送邮件
1.通过python发邮件步骤:
前提:开通了第三方授权,可以使用smtp服务
1.创建smtp对象
2.连接smtp服务器,默认端口号都是25
3.登陆自己的邮箱账号
4.调用发送消息函数,参数:发件人、收件人、消息内容
5.关闭连接

2.邮件消息注册:
首先创建一个消息对象:
msg = email.mime.multipart.MIMEMultipart() #通过这个类创建消息
msg['from'] = '18969@163.com'
msg['to'] = '97481@qq.com;14973@qq.com;lig@d.com'
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 = 28699@qq.com
To = 58380@qq.com,25166@qq.com,w7@189.cn,8717@qq.com,12261@qq.com
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('28699@qq.com', 'xrusbcaae')
smtp.sendmail(sendFrom, sendTo.split(","), msg.as_string())
smtp.quit()
执行发送邮件:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sendmail