通過一個執行個體來了解smtplib的使用,這裡使用網易郵箱來向QQ郵箱發送郵件。
由于發件人需要連接配接郵件伺服器才能發送郵件,下面提供163郵箱常用的收件、發件伺服器的位址和端口:
類型
伺服器名稱
伺服器位址
SSL協定端口号
非SSL協定端口号
收件伺服器
POP
pop.163.com
995
110
IMAP
imap.163.com
993
143
發件伺服器
SMTP
smtp.163.com
465/994
25
Ok,SMTP的經測試可以使用,其它的有需要的也可以試試。
1.郵件發送執行個體代碼與測試
參考了劉天斯老師書本上的代碼,自己也做了一些修改,友善自己了解和記憶,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>#!/usr/bin/env python</code>
<code># -*- coding:utf-8 -*-</code>
<code>import</code> <code>smtplib</code>
<code>Server </code><code>=</code> <code>"smtp.163.com"</code> <code># 163郵箱的SMTP伺服器位址</code>
<code>Subject </code><code>=</code> <code>"Test email from Python"</code> <code># 郵件主題</code>
<code>To </code><code>=</code> <code>"[email protected]"</code> <code># 收件人</code>
<code>From </code><code>=</code> <code>"[email protected]"</code> <code># 發件人</code>
<code>Text </code><code>=</code> <code>"This is the email send by xpleaf, from [email protected]!"</code> <code># 郵件内容</code>
<code>Body </code><code>=</code> <code>'\r\n'</code><code>.join((</code><code>"From: %s"</code> <code>%</code> <code>From,</code>
<code> </code><code>"To: %s"</code> <code>%</code> <code>To,</code>
<code> </code><code>"Subject: %s"</code> <code>%</code> <code>Subject,</code>
<code> </code><code>"",</code>
<code> </code><code>Text))</code>
<code>s </code><code>=</code> <code>smtplib.SMTP() </code><code># 執行個體化一個SMTP類</code>
<code>s.connect(Server, </code><code>'25'</code><code>) </code><code># 連接配接SMTP伺服器</code>
<code>s.starttls() </code><code># 開啟TLS(安全傳輸)模式</code>
<code>s.login(</code><code>'[email protected]'</code><code>, </code><code>'********'</code><code>) </code><code># 登陸到163郵件伺服器</code>
<code>s.sendmail(From, [To], Body) </code><code># 發送郵件</code>
<code>s.quit() </code><code># 退出</code>
執行上面的腳本,在QQ郵箱中會收到下面這樣一封郵件:
<a href="https://s5.51cto.com/wyfs02/M00/8E/43/wKioL1i61NvAxSfbAAAtju9pIs4903.png" target="_blank"></a>
2.下一步要做什麼
從上面收到的郵件可以看到,郵件的内容比較簡陋,都是純文字的,可以考慮定制郵件的格式進而使郵件的内容更加多樣化。
本文轉自 xpleaf 51CTO部落格,原文連結:http://blog.51cto.com/xpleaf/1903279,如需轉載請自行聯系原作者