日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能...

發布時間:2025/5/22 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概要

我們都知道SMTP(簡單郵件傳輸協議),是一組用于從原地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。SMTP規定電子郵件應該如何格式化、如何加密,以及如何在郵件服務器之間傳遞。SMTP服務器就是通過遵循SMTP協議的發送郵件服務器。

如果你使用過郵件客戶端,比如Foxmail,outlook等,那么你應該了解SMTP服務器和端口號,除了服務器和端口,我們還需要進行其他配置,默認情況下郵件服務提供商是不允許我們使用程序進行郵件發送的,如果想要使用程序發送電子郵件,就需要我們手動開啟SMTP服務,并獲取一個專用的授權碼(用于登陸)。 -- 需要自行去了解所用郵箱的授權碼獲取方式

使用smtplib和email模塊發送郵件

得到郵箱的授權碼就可以使用Python代碼發送電子郵件了。Python標準庫有多個與郵件相關的模塊,其中smtplib負責發送郵件,email模塊用來構造郵件和解析郵件內容。

smtplib模塊

stmplib發送郵件大概分為以下幾個步驟:

  • 連接到SMTP服務器
  • 發送SMTP的“Hello”消息
  • 登陸到SMTP服務器
  • 發送電子郵件
  • 關閉SMTP服務器的連接

對于簡單的郵件,smtplib的使用是非常簡單的,下面是實例

PS:sendmail的參數為發件人,收件人,郵件內容

注意:可以在創建加密鏈接之前使用smtp.set_debuglevel(1),來顯示與SMTP服務器交互的相關信息

查看發送的郵件會發送,有兩個問題,一是收件人欄為空,二是郵件內容缺失,這是因為郵件主題、如何顯示發件人、收件人等信息并不是通過SMTP協議發給MTA,而是包含在發給MTA的文本中的,所以,我們必須把From、To和Subject添加到email模塊中的MIMEText中,才是一封完整的郵件。(MTA可以理解為郵件代理服務器)。

smtplib模塊結合email模塊

使用email模塊構建一個郵件對象(Message),email模塊中支持很多郵件對象

  • MIMEText:表示一個純文本的郵件* 常用
  • MIMEImage:表示一個作為附件的圖片
  • MIMEMultipart:用于把多個對象組合起來

其中還有諸如其他的類:MIMEBase、MIMEAudio等。

MIMEText對象的主要參數是:MIMEText(_text, _subtype='plain', _charset=None),其中:

_text:表示郵件內容

_subtype:表示郵件內容的類型,默認為plain(純文本),還可以設置為html,表示正文是html文件(會渲染HTML標簽)

_charset:表示郵件編碼,默認情況下使用ascii編碼

下面是一個發送純文本郵件的例子:

PS:利用msg對象,我們可以構建郵件的header,通過添加header信息,給郵件增加subject等參數,達到補全郵件信息的目的。msg的header添加方式和使用字典的方式相同。

帶附件的郵件

前面說明了發送純文本郵件的方法,在使用郵件發送帶附件(圖片)的郵件時,需要使用MIMEMultipart對象,并把MIMEImage對象添加。

使用yagmail發送郵件

Python的標準庫smtplib和email,相對來說還是比較復雜的,因此許多開源項目提供了更加易用的接口來發送郵件。比如yagmail就是一個使用比較廣泛的開源項目,它依舊使用smtplib和email模塊,但是相對于直接使用smtplib和email模塊,它提供了更加Pythonic的接口,并具有更好的易用性。

由于yagmail屬于第三方庫,在使用前需要先行安裝

pip3 install yagmail

下面使用yagmail發送一封簡單的郵件

如果要攜帶附件那么只需要在send后面添加即可

總結

以上是生活随笔為你收集整理的安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。