利用Python發送郵件


本例使用126郵箱,需開通POP3/SMTP服務。

  1. 登錄126郵箱,在設置-->POP3/SMTP/IMAP 中設置如下選項,記住服務器地址。

 

 下面為已調通的Python3代碼

 1 # coding:utf-8
 2 # smtplib模塊負責連接服務器和發送郵件
 3 # MIMEText:定義郵件的文字數據
 4 # MIMEImage:定義郵件的圖片數據
 5 # MIMEMultipart:負責將文字圖片音頻組裝在一起添加附件
 6 import smtplib  # 加載smtplib模塊
 7 from email.mime.text import MIMEText
 8 from email.utils import formataddr
 9 from email.mime.application import MIMEApplication
10 from email.mime.image import MIMEImage
11 from email.mime.multipart import MIMEMultipart
12 
13 sender = 'xxx@126.com'  # 發件人郵箱賬號
14 receive = 'xxx@qq.com'  # 收件人郵箱賬號
15 passwd = 'xxx'
16 mailserver = 'smtp.126.com'
17 port = '25'
18 sub = 'Python3 test'
19 
20 try:
21     msg = MIMEMultipart('related')
22     msg['From'] = formataddr(["sender", sender])  # 發件人郵箱昵稱、發件人郵箱賬號
23     msg['To'] = formataddr(["receiver", receive])  # 收件人郵箱昵稱、收件人郵箱賬號
24     msg['Subject'] = sub
25     #文本信息
26     #txt = MIMEText('this is a test mail', 'plain', 'utf-8')
27     #msg.attach(txt)
28 
29     #附件信息
30     attach = MIMEApplication(open("D:\xx\\tool\pycharm\\1.csv").read())
31     attach.add_header('Content-Disposition', 'attachment', filename='1.csv')
32     msg.attach(attach)
33 
34     #正文顯示圖片
35     body = """
36     <b>this is a test mail:</b> 
37     <br><img src="cid:image"><br>
38     """
39     text = MIMEText(body, 'html', 'utf-8')
40     f = open('D:\xx\pip.png', 'rb')
41     pic = MIMEImage(f.read())
42     f.close()
43     pic.add_header('Content-ID', '<image>')
44     msg.attach(text)
45     msg.attach(pic)
46 
47 
48     server = smtplib.SMTP(mailserver, port)  # 發件人郵箱中的SMTP服務器,端口是25
49     server.login(sender, passwd)  # 發件人郵箱賬號、郵箱密碼
50     server.sendmail(sender, receive, msg.as_string())  # 發件人郵箱賬號、收件人郵箱賬號、發送郵件
51     server.quit()
52     print('success')
53 except Exception as e:
54         print(e)

發送成功如下圖所示:


在測試過程中有遇到如下報錯,調用126郵箱服務器來發送郵件,需要開啟POP3/SMTP服務,開通后會有一個126郵箱客戶端授權碼,代碼中的“passwd”要用此授權碼代碼郵箱的登錄密碼。

(535, b'Error: authentication failed')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM