使用python實現自動化郵件傳送,可以讓你擺脫繁瑣的重複性業務,可以節省非常多的時間。
操作前配置(以較為複雜的qq郵箱舉例,其他郵箱操作類似)
單擊設定-賬號,滑倒下方協議處,開啟imap/smtp程式設計客棧協議(imap,即internet message accessprotocol(網際網路郵件訪問協議),可以通過這種協議從郵件伺服器上獲取郵件的資訊、**郵件等。imap與pop類似,都是一種郵件獲取協議。)
(ps.開啟需要驗證)
記住埠號,後續寫**傳送郵件時候需要:
生成授權碼,前期配置完成
我們首先來傳送乙個簡單的郵件:
smtp.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]
引數說明:
這裡要注意一下:第三個引數,msg是字串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,傳送郵件的時候,要注意msg的格式。這個格式就是smtp協議中定義的格式。
import smtplib
from email.mime.text import mimetext
##輸入發件人郵箱名稱
email_name = '你的郵箱'
# 輸入使用者授權碼
passwd = '你的授權碼'
# 收件人郵箱
msg_to = '想要發給誰'
# 郵件的正文
content = "我想吃饅頭"
# 設定郵件
msg = mimetext(content)
msg['subject']='你想吃什麼'
#設定發件人
msg['from']= '你隔壁的小王'
# 這個引數設定要發給誰
msg['to'] = msg_to
#連線伺服器
s= smtplib.smtp_ssl('smtp.qq.com',465)
# 登陸我的郵箱
s.login(email_name,passwd)
# 傳送郵箱
s.sendmail(email_name,msg_to,msg.as_string())
print("傳送成功")
傳送成功,我們在接收的郵箱裡收到了這封郵件。
怎麼傳送帶附件的郵件:
傳送帶附件的郵件,首先要建立mimemultipart()例項,然後構造附件,如果有多個附件,可依次構造,最後利用smtplib.smtp傳送。
import smtplib
from email.mime.text import mimetext
from email.mime.multipart import mimemultipart
##輸入發件人郵箱名稱
email_name = '***'
# 輸入使用者授權碼
passwd = '***'
# 收件人郵箱
msg_to = '***'
# 郵件的正文
content = "我想吃饅頭"
# 設定郵件
content_part = mimetext(content)
#設定附件內容物件
msg = mimemultipart()
msg['subject']='你想吃什麼'
#設定發件人
msg['from']= '你隔壁的小王'
# 這個引數設定要發給誰
msg['to'] = msg_to
#新增附件內容
msg.attach(content_part)
#*********************構造附件***********
# 文字型別的附件
att1 = mimetext(open("./data/學習目標.txt",'rb').read(),'plain','utfwww.cppcns.com-8')
# 新增頭資訊,我告訴伺服器,我現在是乙個附件
att1['content-type']='application/octet-stream'
att1.add_header("content-disposition",'attachment',filename=('gbk',"",'學習目標.txt'))
# 把內容新增到郵件中
msg.attach(att1)
# 附件
att2 = mimetext(open("小豬豬.gif",'rb').read(),'plain','utf-8')
# 新增頭資訊,我告訴伺服器,我現在是乙個附件
att2['content-type']='application/octet-stream'
att2.add_header("content-disposition",'attachment',filename=('gbk',"",'小豬豬.gif'))
# 把內容新增到郵件中
msg.attach(att2)
#連線伺服器
s= smtplib.smtp_ssl('smtp.qq.com',465)
# 登陸我的郵箱
s.login(email_name,passwd)
# 傳送郵箱
s.sendmail(email_name,msg_to,msg.as_string())
print("傳送成功")
可以看到附件傳送成功,但是我們在工作中發郵件都是批量發,還涉及到抄送人,那麼我們應該怎麼做那?
#抄送人設定
acc_to = ['***]
# 這個引數設定要發給誰
msg['to'] = ';'.join(msg_to)
#設定抄送人
msg['cc'] = ';'.join(acc_to)
只需要我們對抄送人進行設定即可
是不是一下就實現批量了
帶郵件的傳送:
# 郵件正文
content ="""
程式設計客棧;
哈哈哈這是結尾
"""image_path =
# 這是發件人的郵箱名稱
email_name ='***'
# 這是是使用者授權碼,qq郵箱有。 其他郵箱一般直接寫你的密碼
passwd = '***'
# 收件人郵箱 多人傳送
msg_to = ['***]
# 抄送人
acc_to = [***]
from_name ='***'
subject ='自動化辦公開始啦'
att_file=['./data/學習目標.txt','評論詞雲圖.png','自動化辦公.ipynb','小豬豬.gif','***.jpg']
send_email(email_name = email_name
,passwd=passwd
,msg_to=msg_to
,acc_to=acc_to
,content=content
,image_html=true
,www.cppcns.comimage_path = image_path
,subject=subject
,from_name = from_name
,att_file=att_file
)傳送成功,是不是簡單又有趣,能大大的增大大家的工作效率,大家快試試把,最後還是想說,python np!
python自動化辦公 郵件收發
一 安裝郵件庫 pip install pyemail 二 郵件介面 這裡以qq郵箱來介紹 需要開啟qq郵箱的設定 賬戶裡smtp服務,接下來會通過傳送簡訊驗證來獲得授權碼,有了授權碼後就可以在 裡新增了 步驟如下 傳送簡訊後會生成授權碼 導入庫import smtplib from email.m...
python自動化辦公(一)
os模組簡介os是pyhon標準庫,可以實現和作業系統有關的操作,例如建立,移動,複製檔案和資料夾,檔案路徑和名稱處理等等 注意 有些指令是windows,mac,linux通用,有些只在mac,linux下可用獲取當前python程式執行路徑方法 import os print os.gecwd ...
python辦公自動化1 7 1 8 1 9
from tempfile import temporaryfile f temporaryfile w 表示寫入及讀取檔案 f.write hello 尹老師!f.seek 0 表示回到檔案的開頭位置 data f.readlines print data f.close 臨時資料夾 from t...