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 (配置文件)
<code>From = [email protected]</code>
<code>To = [email protected],[email protected],[email protected],[email protected],[email protected]</code>
<code>Subject = </code><code>'测试邮件'</code>
<code>message = </code><code>''</code><code>'大家好:</code>
<code>测试邮件</code>
<code>以上</code>
<code>谢谢</code>
<code>''</code><code>'</code>
(2)读取文件conf文件工具,并测试
文件2:util.py (工具文件)
<code>import</code> <code>codecs</code>
<code>import</code> <code>re</code>
<code>fileName </code><code>=</code> <code>"message.conf"</code>
<code>def</code> <code>getProperty(</code><code>property</code><code>):</code>
<code> </code><code>with codecs.</code><code>open</code><code>(fileName, encoding</code><code>=</code><code>"utf-8"</code><code>) as f:</code>
<code> </code><code>if</code> <code>property</code> <code>!</code><code>=</code> <code>"message"</code><code>:</code>
<code> </code><code>for</code> <code>line </code><code>in</code> <code>f.readlines():</code>
<code> </code><code>if</code> <code>line.startswith(</code><code>"{0} = "</code><code>.</code><code>format</code><code>(</code><code>property</code><code>)):</code>
<code> </code><code>value </code><code>=</code> <code>line.split(</code><code>"{0} = "</code><code>.</code><code>format</code><code>(</code><code>property</code><code>))[</code><code>1</code><code>]</code>
<code> </code><code>print</code> <code>value.strip(</code><code>'\n'</code><code>)</code>
<code> </code><code>return</code> <code>value.strip(</code><code>'\n'</code><code>)</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>reg </code><code>=</code> <code>re.</code><code>compile</code><code>(r</code><code>"message = '''((.*\n)*)'''"</code><code>)</code>
<code> </code><code>result </code><code>=</code> <code>reg.findall(f.read())</code>
<code> </code><code>print</code> <code>result[</code><code>0</code><code>][</code><code>0</code><code>]</code>
<code> </code><code>return</code> <code>result[</code><code>0</code><code>][</code><code>0</code><code>]</code>
<code>getProperty(</code><code>"From"</code><code>)</code>
<code>getProperty(</code><code>"To"</code><code>)</code>
<code>getProperty(</code><code>"Subject"</code><code>)</code>
<code>getProperty(</code><code>"message"</code><code>)</code>
文件2 调用 文件1 的参数,获得到对应的值,测试结果如图:
测试完成后,注销输出信息和调用函数
(3)发送邮件脚本
3.文件:sendtext.py (邮件脚本文件)
<code>import</code> <code>email.mime.multipart</code>
<code>import</code> <code>email.mime.text</code>
<code>import</code> <code>email.header</code>
<code>from</code> <code>util </code><code>import</code> <code>getProperty</code>
<code>import</code> <code>smtplib</code>
<code>#消息内容</code>
<code>msg </code><code>=</code> <code>email.mime.multipart.MIMEMultipart()</code>
<code>sendFrom </code><code>=</code> <code>getProperty(</code><code>"From"</code><code>)</code>
<code>sendTo </code><code>=</code> <code>getProperty(</code><code>"To"</code><code>)</code>
<code>sendSubject </code><code>=</code> <code>getProperty(</code><code>"Subject"</code><code>)</code>
<code>sendMessage </code><code>=</code> <code>getProperty(</code><code>"message"</code><code>)</code>
<code>msg[</code><code>"From"</code><code>] </code><code>=</code> <code>sendFrom</code>
<code>msg[</code><code>"To"</code><code>] </code><code>=</code> <code>sendTo</code>
<code>msg[</code><code>'Subject'</code><code>] </code><code>=</code> <code>email.header.Header(sendSubject)</code>
<code>text </code><code>=</code> <code>email.mime.text.MIMEText(sendMessage, </code><code>'plain'</code><code>, </code><code>'utf-8'</code><code>)</code>
<code>msg.attach(text)</code>
<code>#发送</code>
<code>smtp </code><code>=</code> <code>smtplib.SMTP_SSL(</code><code>"smtp.qq.com"</code><code>, </code><code>465</code><code>)</code>
<code>smtp.login(</code><code>'[email protected]'</code><code>, </code><code>'xrusbcaae'</code><code>)</code>
<code>smtp.sendmail(sendFrom, sendTo.split(</code><code>","</code><code>), msg.as_string())</code>
<code>smtp.quit()</code>
执行发送邮件:
本文转自 听丶飞鸟说 51CTO博客,原文链接:http://blog.51cto.com/286577399/2059237