国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python 發送郵件的三種方法

開發
今天我們就來學習Python發送郵件的三種方法,分別是使用smtplib模塊、yagmail庫和email庫。每種方法都有其特點和適用場景,讓我們一起來看看吧!

發送郵件是日常工作中非常常見的需求,無論是個人還是企業,掌握如何使用Python發送郵件都是非常有用的技能。今天我們就來學習Python發送郵件的三種方法,分別是使用smtplib模塊、yagmail庫和email庫。每種方法都有其特點和適用場景,讓我們一起來看看吧!

1. 使用smtplib模塊發送郵件

smtplib 是 Python 標準庫中的一個模塊,用于發送郵件。它提供了 SMTP(Simple Mail Transfer Protocol)協議的實現。下面我們通過一個簡單的例子來學習如何使用 smtplib 發送郵件。

示例代碼:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 郵件發送方和接收方
sender = 'your_email@example.com'
receiver = 'recipient_email@example.com'

# 郵件內容
message = MIMEText('這是一封測試郵件', 'plain', 'utf-8')
message['From'] = Header("發件人", 'utf-8')
message['To'] = Header("收件人", 'utf-8')

# 郵件主題
subject = 'Python SMTP 郵件測試'
message['Subject'] = Header(subject, 'utf-8')

# 連接 SMTP 服務器并發送郵件
try:
    smtp_obj = smtplib.SMTP('smtp.example.com', 25)  # SMTP服務器地址和端口
    smtp_obj.login('your_email@example.com', 'your_password')  # 登錄SMTP服務器
    smtp_obj.sendmail(sender, receiver, message.as_string())  # 發送郵件
    print("郵件發送成功")
except smtplib.SMTPException as e:
    print("Error: 無法發送郵件", e)
finally:
    smtp_obj.quit()

代碼解釋

  • 導入模塊:首先導入 smtplib 和 email.mime.text 模塊。
  • 設置郵件發送方和接收方:定義發送方和接收方的郵箱地址。
  • 創建郵件內容:使用 MIMEText 創建郵件內容,并設置郵件的編碼格式。
  • 設置郵件頭部信息:使用 Header 設置郵件的發送者、接收者和主題。
  • 連接SMTP服務器:使用 smtplib.SMTP 連接到SMTP服務器,并使用 login 方法登錄。
  • 發送郵件:使用 sendmail 方法發送郵件。
  • 異常處理:使用 try-except 塊捕獲可能的異常。8. 關閉連接:使用 quit 方法關閉SMTP連接。

2. 使用yagmail庫發送郵件

yagmail 是一個簡化了 smtplib 和 email 庫使用的第三方庫,使得發送郵件更加方便。下面我們來看一個使用 yagmail 發送郵件的例子。

安裝yagmail:

pip install yagmail

示例代碼:

import yagmail

# 郵件發送方和接收方
sender = 'your_email@example.com'
receiver = 'recipient_email@example.com'

# 郵件內容
subject = 'Python yagmail 郵件測試'
body = '這是一封使用 yagmail 發送的測試郵件'

# 創建 yagmail.SMTP 對象
yag = yagmail.SMTP(user=sender, password='your_password', host='smtp.example.com')

# 發送郵件
try:
    yag.send(to=receiver, subject=subject, contents=body)
    print("郵件發送成功")
except Exception as e:
    print("Error: 無法發送郵件", e)

代碼解釋:

  • 安裝yagmail:使用 pip install yagmail 安裝 yagmail 庫。
  • 導入yagmail:導入 yagmail 模塊。
  • 設置郵件發送方和接收方:定義發送方和接收方的郵箱地址。
  • 創建郵件內容:定義郵件的主題和內容。
  • 創建SMTP對象:使用 yagmail.SMTP 創建一個SMTP對象,并傳入發送方的郵箱地址、密碼和SMTP服務器地址。
  • 發送郵件:使用 send 方法發送郵件。
  • 異常處理:使用 try-except 塊捕獲可能的異常。

3. 使用email庫發送郵件

email 庫是 Python 標準庫中的一個模塊,用于構建復雜的郵件內容。結合 smtplib,可以發送包含附件、HTML 內容等復雜郵件。下面是一個使用 email 庫發送帶附件的郵件的例子。

示例代碼:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# 郵件發送方和接收方
sender = 'your_email@example.com'
receiver = 'recipient_email@example.com'

# 創建一個 MIMEMultipart 對象
msg = MIMEMultipart()

# 設置郵件頭部信息
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = 'Python email 庫郵件測試'

# 添加郵件正文
body = '這是一封使用 email 庫發送的測試郵件,包含附件'
msg.attach(MIMEText(body, 'plain'))

# 添加附件
filename = "example.txt"
attachment = open("path/to/example.txt", "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename={filename}')
msg.attach(part)

# 連接 SMTP 服務器并發送郵件
try:
    smtp_obj = smtplib.SMTP('smtp.example.com', 25)
    smtp_obj.login(sender, 'your_password')
    smtp_obj.sendmail(sender, receiver, msg.as_string())
    print("郵件發送成功")
except smtplib.SMTPException as e:
    print("Error: 無法發送郵件", e)
finally:
    smtp_obj.quit()

代碼解釋:

  • 導入模塊:導入 smtplib 和 email 庫的相關模塊。
  • 設置郵件發送方和接收方:定義發送方和接收方的郵箱地址。
  • 創建MIMEMultipart對象:使用 MIMEMultipart 創建一個郵件對象。
  • 設置郵件頭部信息:設置郵件的發送者、接收者和主題。
  • 添加郵件正文:使用 MIMEText 創建郵件正文,并將其附加到郵件對象中。
  • 添加附件:打開附件文件,使用 MIMEBase 創建附件對象,設置附件內容并進行 base64 編碼,最后將附件附加到郵件對象中。
  • 連接SMTP服務器:使用 smtplib.SMTP 連接到SMTP服務器,并使用 login 方法登錄。
  • 發送郵件:使用 sendmail 方法發送郵件。
  • 異常處理:使用 try-except 塊捕獲可能的異常。
  • 關閉連接:使用 quit 方法關閉SMTP連接。

實戰案例:自動化發送每日天氣報告

假設我們需要每天自動發送一封包含當日天氣報告的郵件給指定的收件人。我們可以結合 requests 庫獲取天氣數據,并使用 smtplib 或 yagmail 發送郵件。

獲取天氣數據:

import requests

def get_weather(city):
    url = f"http://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q={city}"
    response = requests.get(url)
    data = response.json()
    return data['current']['temp_c'], data['current']['condition']['text']

temperature, condition = get_weather('New York')
print(f"當前溫度: {temperature}°C, 天氣狀況: {condition}")

發送郵件:

import yagmail

def send_weather_report(email, city):
    temperature, condition = get_weather(city)
    body = f"親愛的用戶,\n\n這是您訂閱的每日天氣報告。\n\n城市: {city}\n當前溫度: {temperature}°C\n天氣狀況: {condition}\n\n祝您一天愉快!"

    yag = yagmail.SMTP(user='your_email@example.com', password='your_password', host='smtp.example.com')
    try:
        yag.send(to=email, subject=f'{city} 每日天氣報告', contents=body)
        print("郵件發送成功")
    except Exception as e:
        print("Error: 無法發送郵件", e)

send_weather_report('recipient_email@example.com', 'New York')

代碼解釋:

  • 獲取天氣數據:使用 requests 庫調用天氣 API 獲取指定城市的天氣數據。
  • 發送郵件:使用 yagmail 庫發送包含天氣報告的郵件。
  • 函數封裝:將獲取天氣數據和發送郵件的功能封裝成兩個函數,便于調用和維護。

總結

今天我們學習了使用 Python 發送郵件的三種方法:smtplib 模塊、yagmail 庫和 email 庫。每種方法都有其特點和適用場景:

  • smtplib 模塊適合基礎的郵件發送需求,適用于簡單的文本郵件。
  • yagmail 庫簡化了郵件發送的過程,適合快速開發和調試。
  • email 庫結合 smtplib 可以發送復雜的郵件,如包含附件和 HTML 內容的郵件。

通過實戰案例,我們還學會了如何結合第三方 API 自動化發送每日天氣報告。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2023-10-13 10:45:18

HTTP數據

2022-07-13 16:06:16

Python參數代碼

2009-07-08 12:56:32

編寫Servlet

2010-09-14 15:10:49

CSS注釋

2009-12-11 18:49:39

預算編制博科資訊

2011-04-18 15:32:45

游戲測試測試方法軟件測試

2023-08-14 17:58:13

RequestHTTP請求

2021-02-06 11:26:55

Python開發list

2022-04-28 07:26:17

PythonDocker容器

2011-06-10 10:43:12

Ubuntu應用安裝

2009-06-23 10:45:18

Hibernate支持

2021-02-03 18:05:30

Python方法列表

2021-09-10 18:09:42

SQL注入漏洞網絡攻擊

2021-07-13 12:31:27

IT組織改進首席技術官

2009-07-23 15:17:54

JDBC連接Acces

2021-10-09 06:59:36

技術MyBatis數據

2023-09-25 15:08:43

Python方離群值

2023-05-16 16:07:07

大數據數據管理工具

2010-10-20 13:52:07

SQL Server數

2016-09-09 13:07:56

CentOSJDKLinux
點贊
收藏

51CTO技術棧公眾號

在线观看免费av网| 精品影院一区| blacked蜜桃精品一区| 精品色蜜蜜精品视频在线观看| 一本久道久久综合| 999精品视频在这里| 日韩欧美你懂的| 成人软件网18免费视频| 激情欧美一区二区三区| 色天天综合狠狠色| 99青草视频在线播放视| 中文字幕在线观看不卡| 无码人妻aⅴ一区二区三区日本| 成人3d精品动漫精品一二三| 91青青国产在线观看精品| 香蕉成人久久| 成人性生交大片免费看视频直播 | 精品美女一区| 欧美偷拍一区二区| 橘梨纱av一区二区三区在线观看| 高清视频一区二区| 午夜视频久久久| 久久久人成影片一区二区三区在哪下载| 久久综合久久久久88| 国产精品亚洲综合| brazzers在线观看| 国产精品入口麻豆九色| 国产亚洲福利社区| 91视频成人| 欧美精品一卡两卡| 婷婷激情综合| 日本道免费精品一区二区三区| 999精彩视频| 粉嫩av一区二区三区粉嫩| 一区二区三区欧美成人| 久久高清一区| 精品国产中文字幕| 在线电影一区| 国产视频一区二区不卡| 亚洲视频精品| 国语精品免费视频| 一区二区三区四区五区精品视频| 91亚洲精品一区| 欧美在线看片| 久久国产福利国产秒拍| 欧美一区永久视频免费观看| 永久免费av片在线观看全网站| 日本久久一区二区三区| 国产一区二区三区福利| 欧美区在线观看| www免费视频观看在线| 精品成人免费观看| h片在线观看下载| 精品一区二区电影| 欧美在线一级| 欧美极品在线播放| 国产日产精品一区二区三区四区的观看方式 | 一区二区三区美女视频| 2018高清国产日本一道国产| 最新国产精品久久精品| 亚洲日本伦理| 欧美精品久久一区| 亚洲免费福利| 久久久久久久久久久亚洲| 韩日一区二区三区| www.av一区视频| 亚洲永久视频| 日韩人妻无码精品久久久不卡| 国产亚洲女人久久久久毛片| av三级在线播放| 欧美精品v国产精品v日韩精品| 僵尸再翻生在线观看| 日韩三级成人av网| 国产免费av一区二区三区| 91文字幕巨乱亚洲香蕉| 欧美成人精品高清在线播放 | 日韩va欧美va亚洲va久久| 91九色在线视频| 成人毛片100部免费看| 中文字幕一二三区在线观看| 欧美性生交片4| 素人啪啪色综合| 国产精品影视天天线| 国产精品69久久久| 亚洲黄色性网站| 日韩另类在线| 欧美情侣性视频| 亚洲字幕久久| 成人小视频在线观看免费| 中文字幕亚洲一区二区av在线| 国产视频第一页在线观看| 国产亚洲欧美另类中文| 国内精品视频在线观看| 亚洲欧美日韩精品在线| 欧美高清在线视频| 麻豆视频在线观看免费网站| 久久综合久中文字幕青草| 欧美久色视频| 日本三区在线观看| 色丁香久综合在线久综合在线观看| 在线播放高清视频www| 国产不卡av在线| 国产在线不卡视频| 在线看小视频| 日韩在线观看免费网站| 亚洲一级毛片| 能看的毛片网站| 欧美不卡123| 成人久久一区| 色综合av综合无码综合网站| 欧美一区日本一区韩国一区| 午夜精品福利影院| 三年中国中文在线观看免费播放| 精品动漫一区二区| 久久伊人久久| 日本一区二区免费高清视频| 91黄色在线观看| 牛牛精品成人免费视频| 日本黄网站色大片免费观看| 在线亚洲+欧美+日本专区| 蜜桃精品视频| 日本在线观看一区| 亚瑟在线精品视频| 久久国产精品美女| 六月婷婷激情网| 日韩视频中文| 中国在线观看免费国语版电影| 日本一二三区视频在线| 亚洲黄页视频免费观看| 日本亚洲欧美天堂免费| 都市激情久久综合| 松下纱荣子在线观看| 999国内精品视频在线| 午夜成人免费视频| 成人蜜臀av电影| 亚洲jjzzjjzz在线观看| 亚洲天堂免费视频| 免费在线观看日韩欧美| 欧美成年黄网站色视频| 91在线观看免费观看 | 中文字幕亚洲综合久久筱田步美| 欧美三级黄美女| 激情视频免费观看在线| 久久久久久久激情视频| 99国内精品久久| 怡红院成人在线| 日本道在线视频| 亚洲美女视频网站| 久久99精品网久久| 1024在线看片你懂得| 三区精品视频观看| 精品久久久久久综合日本欧美| 亚洲精品美女91| 伊人免费在线| 精品一区2区三区| 日韩欧美中文字幕制服| 日韩极品在线观看| 操你啦视频在线| 亚洲精品成人自拍| 精品国产乱码久久久久久老虎 | 欧美18hd| 99精品国产高清在线观看| 亚洲一二三级电影| 97精品一区二区| 美女av网站| 国产综合久久久久久| 亚洲自拍偷拍综合| 亚洲色图88| 婷婷五月在线视频| 亚洲国产精品一区在线观看不卡| 亚洲成人免费在线视频| 老鸭窝毛片一区二区三区| 成人在线电影在线观看视频| 日本高清免费电影一区| 丝袜连裤袜欧美激情日韩| 中文在线最新版地址| 伊人影院蕉久影院在线播放| 欧美日韩美女在线观看| 欧洲一区精品| 成人不卡视频| 免费成人在线电影| 91在线一区| 日本成人三级电影网站| 日韩精品一区二区三区视频播放| 免费在线观看不卡| 高清久久精品| 美女黄视频在线播放| 好看的日韩精品| 精品偷拍一区二区三区在线看| 91免费看片在线观看| 欧美日韩中文一区二区| 国产欧美黑人| 国产老熟妇精品观看| 日韩av电影免费观看高清| 日本韩国欧美一区二区三区| 国内成人免费视频| 亚洲香蕉视频| 色帝国亚洲欧美在线| 冲田杏梨av在线| 极品尤物一区二区三区|