Python設置通過本機發送郵件

1.1 問題

編寫一個send_mail.py腳本,實現以下功能:
1.創建bob和alice帳戶
2.編寫發送郵件件程序,發件人爲root,收件人是本機的bob和alice帳戶

1.2 步驟

實現此案例需要按照如下步驟進行。

步驟一:創建bob和alice帳戶

01.[root@ localhost day12]# ls /home/
02.Student zabbix zhangsan
03.[root@localhost day12]# useradd bob
04.[root@localhost day12]# useradd alice
05.[root@localhost day12]# ls /home/
06.alice bob Student zabbix zhangsan

步驟二:編寫發送郵件件程序,發件人爲root,收件人是本機的bob和alice帳戶

01.[root@ localhost day12]# vim send_mail.py
02.
03.import smtplib
04.from email.mime.text import MIMEText
05.from email.header import Header
06.#郵件正文有三個參數:第一個爲文本內容,第二個設置文本格式plain,第三個utf-8設置編碼保證多語言兼容性
07.message = MIMEText(‘Python郵件發送測試\n’, ‘plain’, ‘utf8’)
08.標準郵件需要三個頭部信息: From, To, 和 Subject
09.#發送者信息
10.message[‘From’] = Header(‘root@localhost’, ‘utf8’)
11.#接收者信息
12.message[‘To’] = Header(‘bob@localhost’, ‘utf8’)
13.#主題信息
14.message[‘Subject’] = Header(‘mail test’, ‘utf8’)
15.
16.sender = ‘[email protected]’ #發送方
17.receivers = [‘bob@localhost’, ‘[email protected]’] #收件方
18.smtp_obj = smtplib.SMTP(‘localhost’) #用localhost發郵件
19.# smtplib負責發送郵件
20.smtp_obj.sendmail(sender, receivers, message.as_string())

SMTP是發送郵件的協議,Python內置對SMTP的支持,可以發送純文本郵件、HTML郵件以及帶附件的郵件。

Python對SMTP支持有smtplib和email兩個模塊,email負責構造郵件,smtplib負責發送郵件。

Python SMTP 對象使用 sendmail 方法發送郵件:

01.smtp_obj.sendmail(sender, receivers, message.as_string())

參數說明:

sender: 郵件發送者地址。

receivers: 字符串列表,郵件發送地址。

message.as_string(): 發送消息 ,str模式

由於可以一次發給多個人,所以recives傳入一個列表,郵件正文是一個str,as_string()把MIMEText對象變成str。

步驟三:測試腳本執行

01.[root@ localhost day12]# python3 send_mail.py
02.[root@ localhost day12]# mail –u bob
03.Heirloom Mail version 12.5 7/5/10. Type ? for help.
04.“/var/mail/bob”: 1 message 1 new
05.>N 1 =?utf8?q?root=4Oloca Mon Jul 30 09:36 18?663 “”
06.& 1
07.From [email protected] Mon Jul 30 09:36:44 2018
08.Return- Path: [email protected]
09.X- Original- To: [email protected]
10.Content- Type: text/plain; charset=“utf8”
11.From: root@[email protected]
12.To: bob@[email protected]
13.Subject: mail test
14.Date: Mon, 30 Jul 2018 09:36:44 +0800 (CST)
15.Status: R
16.
17.Python郵件發送測試
18.&

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章