一、連接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模塊輕松實現郵件發送功能的方法。