email子產品可以友善的用來構造郵件,今天我們通過一個簡單的例子來實作文本郵件的構造的發送。
先将要發送的内容寫在檔案裡面:
cat /tmp/email_test.txt
hello there!
i love python!
編寫如下腳本:
<code>cat test.py</code>
<code>#!/usr/bin/python</code>
<code>#coding=utf-8</code>
<code>import</code> <code>smtplib</code>
<code>#構造郵件内容</code>
<code>from</code> <code>email.mime.text </code><code>import</code> <code>MIMEText</code>
<code>textfile</code><code>=</code><code>'/tmp/email_test.txt'</code>
<code>fp</code><code>=</code><code>open</code><code>(textfile,</code><code>'rb'</code><code>)</code>
<code>msg</code><code>=</code><code>MIMEText(fp.read())</code>
<code>fp.close()</code>
<code>from_addr</code><code>=</code><code>'[email protected]'</code>
<code>password</code><code>=</code><code>'xxxxxxxx'</code>
<code>smtp_server</code><code>=</code><code>'smtp.qq.com'</code>
<code>to_addr</code><code>=</code><code>'[email protected]'</code>
<code>#構造郵件頭</code>
<code>msg[</code><code>'Subject'</code><code>]</code><code>=</code><code>'the content of %s'</code><code>%</code> <code>textfile</code>
<code>msg[</code><code>'From'</code><code>]</code><code>=</code><code>from_addr</code>
<code>msg[</code><code>'To'</code><code>]</code><code>=</code><code>to_addr</code>
<code>s</code><code>=</code><code>smtplib.SMTP_SSL(smtp_server,</code><code>465</code><code>)</code>
<code>s.set_debuglevel(</code><code>1</code><code>)</code>
<code>s.login(from_addr,password)</code>
<code>s.sendmail(from_addr,[to_addr],msg.as_string())</code>
<code>s.quit()</code>
通過兩個兩個圖可以對比一下有郵件頭和沒有郵件頭的郵件的差別:
有郵件頭的郵件:
<a href="http://s5.51cto.com/wyfs02/M00/8A/3E/wKiom1grvO2wOqi8AAAXNal76O8743.png-wh_500x0-wm_3-wmp_4-s_1691005471.png" target="_blank"></a>
沒有郵件頭的郵件:
<a href="http://s5.51cto.com/wyfs02/M00/8A/3E/wKiom1grvO3BjC2MAAANptF-qr8094.png-wh_500x0-wm_3-wmp_4-s_1532298137.png" target="_blank"></a>
好了,一封簡單的文本郵件就這樣發送成功了。
本文轉自 emma_cql 51CTO部落格,原文連結:http://blog.51cto.com/chenql/1873342