欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用smtplib實(shí)現(xiàn)郵件發(fā)送

 更新時(shí)間:2023年06月29日 09:26:02   作者:陸理手記  
在當(dāng)今數(shù)字時(shí)代,電子郵件已成為我們生活和工作中不可或缺的一部分,本篇文章將為你講解如何在Python發(fā)送郵件,并為你提供實(shí)現(xiàn)的多種方式,希望對(duì)大家有所幫助

1.引言

在當(dāng)今數(shù)字時(shí)代,電子郵件已成為我們生活和工作中不可或缺的一部分。Python 中的 smtplib 庫(kù)提供了一個(gè)簡(jiǎn)單的接口,使得發(fā)送電子郵件變得非常容易。通過(guò)Python可以方便地自動(dòng)發(fā)送郵件,將郵件發(fā)送給客戶(hù)、同事或朋友,以及提醒你的任務(wù)列表或提醒你必須完成的工作。本篇文章將為你講解如何在Python發(fā)送郵件,并為你提供實(shí)現(xiàn)的多種方式。不管你是初學(xué)者還是有一定編程經(jīng)驗(yàn)的高級(jí)用戶(hù),都能從中受益。 若要實(shí)現(xiàn)發(fā)送電子郵件,我們的大致思路可分為以下幾個(gè)步驟:

  • 1.申請(qǐng)郵箱賬號(hào)(本文以163郵箱為例)
  • 2.登錄:提供賬號(hào)密碼,并通過(guò)python smtplib庫(kù)登錄。
  • 3.編輯郵件內(nèi)容:包括發(fā)件人、收件人、抄送人、主題、郵件內(nèi)容(文本、附件)等。
  • 4.發(fā)送郵件。

2. POP3、SMTP、IMAP協(xié)議

POP3、IMAP、SMTP 都是與電子郵件相關(guān)的協(xié)議。 POP3(Post Office Protocol version 3) 是一種常用的電子郵件接收郵件協(xié)議,它允許用戶(hù)從遠(yuǎn)程服務(wù)器下載自己的郵件收件箱中的郵件。它的主要缺點(diǎn)是如何管理收件箱中的郵件,即當(dāng)用戶(hù)將電子郵件從服務(wù)器上下載到本地計(jì)算機(jī)時(shí),它通常從服務(wù)器上刪除郵件,在某些情況下,會(huì)導(dǎo)致一些問(wèn)題。

IMAP(Internet Message Access Protocol) 允許用戶(hù)遠(yuǎn)程管理郵件服務(wù)器中的電子郵件。它提供了一種在客戶(hù)端計(jì)算機(jī)和郵件服務(wù)器之間保持持久化連接的方式,因此它在管理郵件上有更大的靈活性。它還提供了一種能夠讓用戶(hù)保存郵件的方式,即當(dāng)用戶(hù)在客戶(hù)端中刪除電子郵件時(shí),它不會(huì)從郵件服務(wù)器上刪除。

SMTP(Simple Mail Transfer Protocol) 是一個(gè)定義了郵件傳輸方式的簡(jiǎn)單且基本的協(xié)議。它用于從一臺(tái)服務(wù)器(發(fā)送郵件的服務(wù)器)將郵件傳輸?shù)搅硪慌_(tái)服務(wù)器(接收郵件的服務(wù)器)。SMTP使用TCP/ IP協(xié)議來(lái)傳輸郵件,并使用25端口(默認(rèn)情況下)。它允許用戶(hù)發(fā)送電子郵件以便其他用戶(hù)可以接收它。

3. 申請(qǐng)郵箱賬號(hào)

如圖所示,注冊(cè)并登錄郵箱后,我們需開(kāi)啟客戶(hù)端登錄權(quán)限,并獲取到授權(quán)碼(此處以163郵箱為例)。

這些前置工作做好后,讓我們開(kāi)始進(jìn)入編程實(shí)操吧!

4.發(fā)送普通郵件

下面我們將使用Python內(nèi)置的smtplib模塊和ssl模塊發(fā)送電子郵件。這個(gè)方法需要一些郵件服務(wù)器的相關(guān)信息,例如SMTP地址和端口號(hào),以及登錄憑據(jù)(上面已經(jīng)準(zhǔn)備好了)。具體步驟如下:

4.1 導(dǎo)入必要模塊

導(dǎo)入smtplib和ssl模塊,ssl模塊將保護(hù)您的登錄憑據(jù),確保安全發(fā)送電子郵件。

import smtplib, ssl

4.2 設(shè)置服務(wù)器和端口號(hào)

使用您的郵箱提供商提供的SMTP地址和端口號(hào)來(lái)設(shè)置SMTP服務(wù)器。根據(jù)您的郵箱,可以設(shè)置為不同的地址和端口號(hào)。

smtp_server = "smtp.163.com"
port = 465# 對(duì)于TLS連接,我們使用465端口。 

4.3 建立連接并登錄

使用SMTP服務(wù)器建立與服務(wù)器的連接。然后,使用您的發(fā)送電子郵件的電子郵件地址和密碼進(jìn)行身份驗(yàn)證。電子郵件與您的登錄密碼或其他訪問(wèn)令牌是相互關(guān)聯(lián)的,因此此過(guò)程也稱(chēng)為“登錄”。 下面是一個(gè)完整的Python示例,用于向收件人發(fā)送電子郵件:

# -*- coding: utf-8
import smtplib
# 郵箱服務(wù)器相關(guān)配置
smtp_server = 'smtp.163.com'
smtp_port = 465
# 發(fā)件人相關(guān)配置
mail_sender = 'liululee@163.com' # 發(fā)件人電子郵箱
mail_sender_password = 'XXXXXXXXXXXXXXXXXXX' # 發(fā)件人郵箱密碼
# 建立到郵件服務(wù)器的加密連接
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(mail_sender, mail_sender_password)
# 郵件內(nèi)容
receiver_email = "729235361@qq.com"
message = "\n".join([
? ? "Subject: Test email",
? ? "To: {}".format(receiver_email),
? ? "From: {}".format(mail_sender),
? ? "",
? ? "This is a test email sent with Python."
])
# 發(fā)送郵件
server.sendmail(mail_sender, receiver_email, message)
print("Email sent successfully.")

成功收到郵件:

5.發(fā)送復(fù)雜郵件

接下來(lái),我們使用email模塊相關(guān)的組件來(lái)實(shí)現(xiàn)發(fā)送復(fù)雜郵件,它可以?來(lái)構(gòu)建郵件主題以及各種形式的郵件內(nèi)容(包括文字內(nèi)容、圖片內(nèi)容、html內(nèi)容、附件)等,當(dāng)我們發(fā)送復(fù)雜郵件時(shí),使用它非常便利。

## -*- coding: utf-8
import smtplib, ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 郵箱服務(wù)器相關(guān)配置
smtp_server = 'smtp.163.com'
smtp_port = 465
# 發(fā)件人相關(guān)配置
mail_sender = 'liululee@163.com' # 發(fā)件人電子郵箱
mail_sender_password = 'XXXXXXXXXXXXXXXXX' # 發(fā)件人郵箱密碼
# 創(chuàng)建SSL類(lèi)的上下文對(duì)象
context = ssl.create_default_context()
# 建立到郵件服務(wù)器的加密連接
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(mail_sender, mail_sender_password)
# 郵件內(nèi)容
receiver_email = "729235361@qq.com"
# message = "\n".join([
# ? ? "Subject: Test email",
# ? ? "To: {}".format(receiver_email),
# ? ? "From: {}".format(mail_sender),
# ? ? "",
# ? ? "This is a test email sent with Python."
# ])
# 1.創(chuàng)建郵件對(duì)象
message = MIMEMultipart()
# 2.設(shè)置郵件主題
subject = Header('來(lái)自poycode.cn的晚安問(wèn)候', 'utf-8').encode()
message['Subject'] = subject
# 3.設(shè)置發(fā)送者
message['From'] = mail_sender
# 4.設(shè)置接收者
message['To'] = receiver_email
# 5.設(shè)置抄送者
message['Cc'] = 'developlee@163.com'
# 6.添加文字內(nèi)容
## 6.1 普通文字
text = MIMEText('Hi, 歡迎你訪問(wèn)我的個(gè)人站點(diǎn) poycode.cn ', 'plain', 'utf-8')
message.attach(text)
## 6.2 超文本內(nèi)容
# 添加html內(nèi)容
content = """
<h2>陸理手記</h2>
<p>來(lái)自poycode.cn</p>
<p>感謝你關(guān)注我的公眾號(hào)</p>
<img src='https://static.poycode.cn/wp-content/uploads/2023/06/20230602225540172.jpg'> <center>陸理手記公眾號(hào)二維碼</center>
<a >陸理手記-個(gè)人博客</a>
"""
htmltext = MIMEText(content, 'html', 'utf-8')
message.attach(htmltext)
# 7.添加附件
attachment = MIMEText(open('poycode.txt', 'rb').read(), 'base64', 'utf-8')
attachment["Content-Disposition"] = 'attachment; filename="poycode.txt"'
message.attach(attachment)
# 發(fā)送郵件
server.sendmail(mail_sender, receiver_email, message.as_string())
server.quit()
print("Email sent successfully.")

郵件收到了!很快??!

6.總結(jié)

上一篇教程:Python基礎(chǔ)教程:requests模塊發(fā)送http請(qǐng)求 Python中的smtplib模塊可用于發(fā)送電子郵件,它提供了一種方便易用的方式來(lái)處理郵件。在教程中,通過(guò)使用email模塊,使得我們可以發(fā)送更為復(fù)雜的郵件。通過(guò)Python發(fā)送郵件與其它功能,如定時(shí)任務(wù)、告警等功能相結(jié)合,可以幫助我們更好地處理日常工作。希望這篇教程能夠幫助到您!以上的步驟應(yīng)用于Python郵件發(fā)送的基本過(guò)程,您可以根據(jù)自己的需要對(duì)代碼進(jìn)行修改和改進(jìn)。

以上就是Python利用smtplib實(shí)現(xiàn)郵件發(fā)送的詳細(xì)內(nèi)容,更多關(guān)于Python smtplib發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python xmltodict模塊安裝及代碼實(shí)例

    Python xmltodict模塊安裝及代碼實(shí)例

    這篇文章主要介紹了Python xmltodict模塊安裝及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python讀取ZIP和TAR格式壓縮包的實(shí)現(xiàn)

    Python讀取ZIP和TAR格式壓縮包的實(shí)現(xiàn)

    本文介紹了使用Python讀取ZIP和TAR格式的壓縮包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python在linux中輸出帶顏色的文字的方法

    python在linux中輸出帶顏色的文字的方法

    這篇文章主要介紹了python在linux中輸出帶顏色的文字的方法,僅在Linux系統(tǒng)中有效果,一般輸出在控制臺(tái)中,本文用在日志環(huán)節(jié),方便測(cè)試,需要的朋友可以參考下
    2014-06-06
  • Python實(shí)現(xiàn)在一行中交換兩個(gè)變量

    Python實(shí)現(xiàn)在一行中交換兩個(gè)變量

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)在一行中交換兩個(gè)變量功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08
  • Python3 修改默認(rèn)環(huán)境的方法

    Python3 修改默認(rèn)環(huán)境的方法

    今天小編就為大家分享一篇Python3 修改默認(rèn)環(huán)境的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python re.split方法分割字符串的實(shí)現(xiàn)示例

    Python re.split方法分割字符串的實(shí)現(xiàn)示例

    本文主要介紹了Python re.split方法分割字符串的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python?PaddleGAN實(shí)現(xiàn)照片人物性別反轉(zhuǎn)

    Python?PaddleGAN實(shí)現(xiàn)照片人物性別反轉(zhuǎn)

    PaddleGAN中的styleganv2editing.py是支持性別編輯的。所以本文將介紹如何通過(guò)調(diào)整參數(shù),來(lái)試著實(shí)現(xiàn)一下照片的性別翻轉(zhuǎn)。感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • Python連接SQLite數(shù)據(jù)庫(kù)操作實(shí)戰(zhàn)指南從入門(mén)到精通

    Python連接SQLite數(shù)據(jù)庫(kù)操作實(shí)戰(zhàn)指南從入門(mén)到精通

    在Python中使用SQLite進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),我們將深入研究SQLite數(shù)據(jù)庫(kù)的創(chuàng)建、表格管理、數(shù)據(jù)插入、查詢(xún)、更新和刪除等關(guān)鍵主題,幫助你全面了解如何使用SQLite進(jìn)行數(shù)據(jù)庫(kù)操作
    2023-11-11
  • PyInstaller與pathlib包不兼容的解決方法

    PyInstaller與pathlib包不兼容的解決方法

    當(dāng)我們?cè)谑褂肞yInstaller打包Python程序時(shí),可能會(huì)遇到PyInstaller與pathlib包不兼容的問(wèn)題,這個(gè)錯(cuò)誤的原因是,pathlib這個(gè)包在?Python3.4版本之后已經(jīng)成為了Python標(biāo)準(zhǔn)庫(kù)的一部分,所以不需要再單獨(dú)安裝,所以本文給大家介紹了PyInstaller與pathlib包不兼容的解決方法
    2024-12-12
  • Python計(jì)算時(shí)間間隔(精確到微妙)的代碼實(shí)例

    Python計(jì)算時(shí)間間隔(精確到微妙)的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于Python計(jì)算時(shí)間間隔(精確到微妙)的代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02

最新評(píng)論