用Python的smtplib模塊輕鬆實現郵件發送功能

Python自帶的smtplib模塊可以用於發送郵件,只需要連接SMTP服務器並傳遞數據即可。本文將展示如何使用Python的smtplib模塊輕鬆實現郵件發送功能。

一、連接SMTP服務器

首先需要連接SMTP服務器,SMTP(Simple Mail Transfer Protocol)是用於郵件發送的協議。Python的smtplib模塊可以連接SMTP服務器,並通過它發送郵件。下面是代碼示例:

import smtplib

smtp_server = 'smtp.gmail.com'
smtp_port = 587
username = 'your email'
password = 'your password'

server = smtplib.SMTP(smtp_server, smtp_port)
server.ehlo()
server.starttls()
server.login(username, password)

– smtp_server:SMTP服務器的地址,如Gmail、Hotmail、Yahoo等都有各自的SMTP服務器。
– smtp_port:SMTP服務器運行的端口,一般都是25或587。
– username和password:發件人的郵箱地址和密碼,需要用它們登錄SMTP服務器。

這裡假設你使用Gmail作為SMTP服務器,你需要自己替換smtp_server、username和password。

首先使用SMTP()函數創建一個SMTP對象,然後使用ehlo()函數打招呼,使用starttls()函數啟動TLS加密,最後使用login()函數登錄SMTP服務器。

二、構造郵件內容

郵件通常包含郵件主題、收件人、發件人、郵件內容和附件等信息。下面是一個基本的郵件構造示例:

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

subject = 'Test email'
from_addr = 'sender email'
to_addr = 'receiver email'
body = 'Hello, This is a test email.'

msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))

– MIMEText:郵件的消息內容,包括郵件正文和格式。
– MIMEMultipart:郵件對象,可包含郵件的所有信息,包括附件等。

這裡使用MIMEText()函數創建一個純文本郵件內容,然後使用MIMEMultipart()函數創建一個郵件對象。設置發件人、收件人和主題等信息後,將郵件內容添加到郵件對象中。

三、發送郵件

郵件構造完成後,可以使用sendmail()函數將郵件發送出去:

server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

– from_addr和to_addr:發件人和收件人的郵件地址。
– msg.as_string():將msg(郵件對象)轉換為str類型。

發送郵件後,用quit()函數關閉SMTP連接。

代碼示例:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

smtp_server = 'smtp.gmail.com'
smtp_port = 587
username = 'your email'
password = 'your password'
from_addr = 'sender email'
to_addr = 'receiver email'
subject = 'Test email'
body = 'Hello, This is a test email.'

server = smtplib.SMTP(smtp_server, smtp_port)
server.ehlo()
server.starttls()
server.login(username, password)

msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))

server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

以上就是使用Python的smtplib模塊輕鬆實現郵件發送功能的方法。

原創文章,作者:ZVFB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/149887.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZVFB的頭像ZVFB
上一篇 2024-11-05 16:55
下一篇 2024-11-05 16:55

相關推薦

發表回復

登錄後才能評論