天天看点

48. Python 发邮件(1)

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