python2.7入門---SMTP發送郵件


    SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。python的smtplib提供了一種很方便的途徑發送電子郵件。它對smtp協議進行了簡單的封裝。Python創建 SMTP 對象語法如下:

 

import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

    以下為參數說明:

 

  • host: SMTP 服務器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選參數。
  • port: 如果你提供了 host 參數, 你需要指定 SMTP 服務使用的端口號,一般情況下 SMTP 端口號為25。
  • local_hostname: 如果 SMTP 在你的本機上,你只需要指定服務器地址為 localhost 即可。

    Python SMTP 對象使用 sendmail 方法發送郵件,語法如下:

 

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

    以下為參數說明:

 

  • from_addr: 郵件發送者地址。
  • to_addrs: 字符串列表,郵件發送地址。
  • msg: 發送消息

    這里要注意一下第三個參數,msg 是字符串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,發送郵件的時候,要注意 msg 的格式。這個格式就是 smtp 協議中定義的格式。以下執行實例需要你本機已安裝了支持 SMTP 的服務,如:sendmail。以下是一個使用 Python 發送郵件簡單的實例:


    我們使用三個引號來設置郵件信息,標准郵件需要三個頭部信息: From, To, 和 Subject ,每個信息直接使用空行分割。我們通過實例化 smtplib 模塊的 SMTP 對象 smtpObj 來連接到 SMTP 訪問,並使用 sendmail 方法來發送信息。執行以上程序,如果你本機安裝 sendmail(郵件傳輸代理程序),就會輸出:

 

$ python test.py 郵件發送成功

    查看我們的收件箱(一般在垃圾箱),就可以查看到郵件信息。如果我們本機沒有 sendmail 訪問,也可以使用其他郵件服務商的 SMTP 訪問(QQ、網易、Google等)。


    Python發送HTML格式的郵件與發送純文本消息的郵件不同之處就是將MIMEText中_subtype設置為html。具體代碼如下:


    執行以上程序,如果你本機安裝sendmail,就會輸出:

 

$ python test.py 郵件發送成功

    查看我們的收件箱(一般在垃圾箱),就可以查看到郵件信息。發送帶附件的郵件,首先要創建MIMEMultipart()實例,然后構造附件,如果有多個附件,可依次構造,最后利用smtplib.smtp發送。


    然后運行文件就可以看到結果了。接下來就是,郵件的 HTML 文本中一般郵件服務商添加外鏈是無效的,正確添加突破的實例如下所示:


    運行文件之后來查看結果。如果在垃圾箱可能需要移動到收件箱才可正常顯示。再來使用 QQ 郵箱(你也可以使用 163,Gmail等)的 SMTP 服務,需要做以下配置:


    QQ 郵箱通過生成授權碼來設置密碼:


    QQ 郵箱 SMTP 服務器地址:smtp.qq.com,ssl 端口:465。以下實例你需要修改:發件人郵箱(你的QQ郵箱),密碼,收件人郵箱(可發給自己):


    運行之后就可以查看結果了。更多內容請參閱:https://docs.python.org/2/library/email-examples.html

    如果感覺不錯的話,請多多點贊支持哦。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM