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 (配置文件)
1
2
3
4
5
6
7
8
9
|
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 (工具文件)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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 (邮件脚本文件)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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()
|
执行发送邮件:
本文转自 听丶飞鸟说 51CTO博客,原文链接:http://blog.51cto.com/286577399/2059237