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