天天看點

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

在運維開發中,使用 Python 發送郵件是一個非常常見的應用場景。今天一起來探讨一下,GitHub 的大牛門是如何使用 Python 封裝發送郵件代碼的。

一般發郵件方法SRE實戰 網際網路時代守護先鋒,助力企業售後服務體系運籌帷幄!一鍵直達領取阿裡雲限量特價優惠。

SMTP是發送郵件的協定,Python内置對SMTP的支援,可以發送純文字郵件、HTML郵件以及帶附件的郵件。

我們以前在通過Python實作自動化郵件功能的時候是這樣的:

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

import smtplib

from email.mime.text import MIMEText

from email.header import Header

# 發送郵箱伺服器

smtpserver = 'smtp.sina.com'

# 發送郵箱使用者/密碼

user = '[email protected]'

password = '123456'

# 發送郵箱

sender = '[email protected]'

# 接收郵箱

receiver = '[email protected]'

# 發送郵件主題

subject = 'Python email test'

# 編寫HTML類型的郵件正文

msg = MIMEText('

你好!

','html','utf-8')

msg['Subject'] = Header(subject, 'utf-8')

# 連接配接發送郵件

smtp = smtplib.SMTP()

smtp.connect(smtpserver)

smtp.login(user, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()

python發郵件需要掌握兩個子產品的用法,smtplib和email,這倆子產品是python自帶的,隻需import即可使用。smtplib子產品主要負責發送郵件,email子產品主要負責構造郵件。

smtplib子產品主要負責發送郵件:是一個發送郵件的動作,連接配接郵箱伺服器,登入郵箱,發送郵件(有發件人,收信人,郵件内容)。

email子產品主要負責構造郵件:指的是郵箱頁面顯示的一些構造,如發件人,收件人,主題,正文,附件等。

其實,這段代碼也并不複雜,隻要你了解使用過郵箱發送郵件,那麼以下問題是你必須要考慮的:

你登入的郵箱帳号/密碼

對方的郵箱帳号

郵件内容(标題,正文,附件)

郵箱伺服器(SMTP.xxx.com/pop3.xxx.com)

如果要把一個圖檔嵌入到郵件正文中怎麼做?直接在HTML郵件中連結圖檔位址行不行?答案是,大部分郵件服務商都會自動屏蔽帶有外鍊的圖檔,因為不知道這些連結是否指向惡意網站。

要把圖檔嵌入到郵件正文中,我們隻需按照發送附件的方式,先把郵件作為附件添加進去,然後,在HTML中通過引用src="cid:0"就可以把附件作為圖檔嵌入了。如果有多個圖檔,給它們依次編号,然後引用不同的cid:x即可。

yagmail 實作發郵件

yagmail 可以更簡單的來實作自動發郵件功能。

github項目位址: https://github.com/kootenpv/yagmail

代碼開源,解釋如下:

yag = SMTP(args.user, args.password)

yag.send(to=args.to, subject=args.subject, contents=args.contents, attachments=args.attachments)

安裝:

pip install yagmail

簡單例子:

import yagmail

#連結郵箱伺服器

yag = yagmail.SMTP( user="[email protected]", password="1234", host='smtp.126.com')

# 郵箱正文

contents = ['This is the body, and here is just text http://somedomain/image.png',

'You can find an audio file attached.', '/local/path/song.mp3']

# 發送郵件

yag.send('[email protected]', 'subject', contents)

給多個使用者發郵件:

隻需要将接收郵箱 變成一個list即可。

yag.send(['[email protected]','[email protected]','[email protected]'], 'subject', contents)

發送附件

如何發送附件呢?隻要添加一個附件清單就可以了。

yag.send('[email protected]', '發送附件', contents, ["d://log.txt","d://baidu_img.jpg"])

抄送

# 郵箱正文 文本及附件

contents = ['This is the body, and here is just text http://somedomain/image.png',

'You can find an audio file attached.', '/local/path/song.mp3', '測試郵件', 'test.html', 'logo.jpg',

'yagmal_test.txt']

# 發送

yag.send(to='[email protected]', cc='[email protected]', subject='發送附件', contents=contents)

很簡單吧,開箱即用~~

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

掃碼關注我們

微信号:SRE實戰

拒絕背鍋 運籌帷幄

×

選擇打賞方式:

微信

QQ錢包

支付寶

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

打賞

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

打賞

python自動批量發郵件腳本_批量群發,營銷必備!Python代碼實作自動發送郵件!...你好!

打賞

多少都是心意!謝謝大家!!!

×

選擇分享方式:

微信掃一掃,分享朋友圈

Or

手機掃一掃,精彩随身帶