本文實例講述了Python自動發送郵件的方法。分享給大家供大家參考,具體如下:
python發郵件需要掌握兩個模塊的用法,smtplib和email,這倆模塊是python自帶的,只需import即可使用。smtplib模塊主要負責發送郵件,email模塊主要負責構造郵件。
smtplib模塊主要負責發送郵件:是一個發送郵件的動作,連接郵箱服務器,登錄郵箱,發送郵件(有發件人,收信人,郵件內容)。
email模塊主要負責構造郵件:指的是郵箱頁面顯示的一些構造,如發件人,收件人,主題,正文,附件等。

1.smtplib模塊
smtplib使用較為簡單。以下是最基本的語法。
導入及使用方法如下:
import smtplibsmtp = smtplib.SMTP()smtp.connect('smtp.163.com,25')smtp.login(username, password)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()說明:
smtplib.SMTP():實例化SMTP()
connect(host,port):
host:指定連接的郵箱服務器。常用郵箱的smtp服務器地址如下:
新浪郵箱:smtp.sina.com,新浪VIP:smtp.vip.sina.com,搜狐郵箱:smtp.sohu.com,126郵箱:smtp.126.com,139郵箱:smtp.139.com,163網易郵箱:smtp.163.com。
port:指定連接服務器的端口號,默認為25.
login(user,password):
user:登錄郵箱的用戶名。
password:登錄郵箱的密碼,像筆者用的是網易郵箱,網易郵箱一般是網頁版,需要用到客戶端密碼,需要在網頁版的網易郵箱中設置授權碼,該授權碼即為客戶端密碼。
sendmail(from_addr,to_addrs,msg,...):
from_addr:郵件發送者地址
to_addrs:郵件接收者地址。字符串列表['接收地址1','接收地址2','接收地址3',...]或'接收地址'
msg:發送消息:郵件內容。一般是msg.as_string():as_string()是將msg(MIMEText對象或者MIMEMultipart對象)變為str。
quit():用于結束SMTP會話。
2.email模塊
email模塊下有mime包,mime英文全稱為“Multipurpose Internet Mail Extensions”,即多用途互聯網郵件擴展,是目前互聯網電子郵件普遍遵循的郵件技術規范。
該mime包下常用的有三個模塊:text,image,multpart。
導入方法如下:
from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImage
構造一個郵件對象就是一個Message對象,如果構造一個MIMEText對象,就表示一個文本郵件對象,如果構造一個MIMEImage對象,就表示一個作為附件的圖片,要把多個對象組合起來,就用MIMEMultipart對象,而MIMEBase可以表示任何對象。它們的繼承關系如下:
新聞熱點
疑難解答