日干貨好文分享丨請點擊+關注
歡迎關注天善智能微信公眾號,我們是專注于商業智能BI,大數據,數據分析領域的垂直社區。
對商業智能BI、數據分析挖掘、大數據、機器學習,python,R感興趣同學加微信:fridaybifly,邀請你進入頭條數據愛好者交流群,數據愛好者們都在這兒。
這真是黑科技啊,原來推送的廣告郵件就是這樣產生的。好人用來發節日賀卡,給女朋友紀念郵件;壞人會學著發廣告,垃圾郵件。我希望大家能學會了做些有趣的有意義的事情。
今天我帶大家實現下簡單的發郵件功能。我們要使用到email和smtplib庫,實現環境python3.5.
首先我們要知道用python代理登錄qq郵箱發郵件,是需要更改自己qq郵箱設置的。在這里大家需要做兩件事情:郵箱開啟SMTP功能 、獲得授權碼 教程鏈接。
之后我們來看看如何更改模板代碼,實現使用Python登錄QQ郵箱發送QQ郵件。
我們先附上最簡單的代碼
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
fromsmtplibimportSMTP_SSL
#qq郵箱smtp服務器
host_server='smtp.qq.com'
#sender_qq為發件人的qq號碼
sender_qq='3723358***'
#pwd為qq郵箱的授權碼
pwd='**iao***lxpic***'
#發件人的郵箱
sender_qq_mail='3723358***@qq.com'
#收件人郵箱
receiver='thunder***@gmail.com'
#郵件的正文內容
mail_content='你好,我是來自知乎的[鄧旭東HIT] ,現在在進行一項用python登錄qq郵箱發郵件的測試'
#郵件標題
mail_title='鄧旭東HIT 的郵件'
#ssl登錄
smtp=SMTP_SSL(host_server)
#set_debuglevel()是用來調試的。參數值為1表示開啟調試模式,參數值為0關閉調試模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_qq,pwd)
msg=MIMEText(mail_content,"plain",'utf-8')
msg["Subject"]=Header(mail_title,'utf-8')
msg["From"]=sender_qq_mail
msg["To"]=receiver
smtp.sendmail(sender_qq_mail,receiver,msg.as_string())
smtp.quit()
只需要更改host_server 、sender_qq、pwd、sender_qq_mail、receiver、mail_content、mail_title等數據,就可以實現簡單的發送任務。
但是上面的代碼如果只是用來給一個收件人發一次還好,如果收件人數以千計,發送的內容各一,重復寫代碼太麻煩。下面是我更改后的代碼
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
fromsmtplibimportSMTP_SSL
#sender_qq為發件人的qq號碼
sender_qq='3723358***'
#pwd為qq郵箱的授權碼
pwd='**iao***lxpic***'
#收件人郵箱receiver
receiver='thunder***@gmail.com'
#郵件的正文內容
mail_content='你好,我是來自知乎的[鄧旭東HIT] ,現在在進行一項用python登錄qq郵箱發郵件的測試'
#郵件標題
mail_title='鄧旭東HIT 的郵件'
defsend_mail(sender_qq='',pwd='',\
receiver='',mail_title='',mail_content=''):
# qq郵箱smtp服務器
host_server='smtp.qq.com'
sender_qq_mail=sender_qq+'@qq.com'
#ssl登錄
smtp=SMTP_SSL(host_server)
#set_debuglevel()是用來調試的。參數值為1表示開啟調試模式,參數值為0關閉調試模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_qq,pwd)
msg=MIMEText(mail_content,"plain",'utf-8')
msg["Subject"]=Header(mail_title,'utf-8')
msg["From"]=sender_qq_mail
msg["To"]=receiver
smtp.sendmail(sender_qq_mail,receiver,msg.as_string())
smtp.quit()
foriinrange(10):
send_mail(sender_qq=sender_qq,pwd=pwd,\
receiver=receiver,mail_title=mail_title,\
mail_content=mail_content)
注意MIMEText函數中的第二個參數為“plain”時,發送的是text文本。如果為“html”,則能發送網頁格式文本郵件。
msg=MIMEText(mail_content, "plain", 'utf-8')
對商業智能BI、大數據分析挖掘、機器學習,python,R感興趣同學加微信:fridaybifly,邀請你進入頭條數據愛好者交流群,數據愛好者們都在這兒。
轉載請保留以下內容:
本文來源自天善社區鄧旭東HIT的博客
原文鏈接:https://ask.hellobi.com/blog/dengxudong/6560。
本篇總結了QQ郵箱和163郵箱發送郵件,郵件包含html中文和附件,可以發給多個收件人。
了解發郵件的思路,發送郵件需要的一些設置,發送一封簡單的郵件,發送一封包含附件的郵件,在寫代碼過程中我們需要注意哪些問題等等。
1.先導入smtplib庫用來發送郵件,導入MIMEText庫用來做純文本的郵件模板。
2.先準備幾個跟發郵件相關的參數,每個郵箱的發件服務器都不一樣,以163為例,百度搜到發件服務器為:smtp.163.com
3.接下來就是寫郵件的主題和正文內容,正文這里用html格式的
4.最后調用發件服務
5.參考代碼:
1.QQ郵箱是需要SSL認證的,這種郵箱跟上面的就有點不一樣了
2.找到QQ郵箱授權碼,打開QQ郵箱-設置-賬號-POP3開啟服務-開啟
(如果已經開啟了,不知道授權碼,就點溫馨提示里面的‘生成授權碼’)
3.發驗證短信獲取授權碼,照著提示發個短信,如何點我已發送,就會收到授權碼了
4.收到授權碼后復制,保存下來,這個就可以當QQ郵箱的密碼了
5.QQ郵箱發送郵件代碼,跟163有點不一樣,如下圖紅色框框:
6.參考代碼:
如果想兼容上面兩種方式發送郵件,只需把第三塊內容稍微改下,如下所示:
1.上面的MIMEText只能發送正文,無法帶附件,發送帶附件的需要導入另外一個模塊MIMEMultipart。
2.先讀取要發送文件的內容,file_path是路徑的參數名。
3.下圖紅色框file_name參數是發送的附件重新命名。
4.參考代碼:
上面都是發給一個收件人,那么如何一次發給多個收件人呢?只需改兩個小地方:
4.參考代碼:
通過上面的代碼,想必大家已經對發郵件有了基本的認識。
從整體上我們要把握整個過程的思路:
如果出現郵件收不到的情況,可以考慮以下幾種情況:
(以上代碼在python2和python3上都測試通過了!)
以上是python筆記3全部內容,如果覺得對你有幫助,就點擊“收藏”吧!
如果還有疑問的地方,歡迎評論留言給我們~
是案例解析 FileMaker 18 新功能的最后一篇,我們來聊一下用增強的“從 URL 插入”腳本來實現發送 HTML 郵件的功能。
發送郵件對于 FileMaker 來說并不是什么陌生功能,專門就有發送郵件這個腳本來操作。不過我們這里談的是帶排版的 HTML 郵件,這才是 FileMaker 18 新增的功能。這個功能的實現是因為“從 URL 插入”腳本新增支持:smb、smtp、smtps、ldap 和 ldaps。其中 smtp&smtps 就是發郵件的協議,前者為常規發件協議、后者為 SSL 加密的發件協議。比如,我們使用的 QQ 企業郵箱,就是通過 SSL 加密,所以必須使用 smtps 協議。
選定協議之后,我們還需要了解 cURL 發郵件的配置選項。這主要包括:
--mail-from:發件人郵箱
--mail-rcpt:收件人郵箱
--upload-file:包含發件人、收件人、標題、郵件內容的 txt 文件
--user:“發件郵箱:密碼”格式的用戶名和密碼
以上配置需要連接成一條文本,設置到“從 URL 插入”的“指定cURL 選項”。
需要特別注意的是 --upload-file 選項,這里是將發件人、收件人、標題、郵件內容合并成一個 txt 文本,并放置到容器中進行調用。文本格式如下(Content-Type 和郵件內容之間需要留 1 行以上空行):
具備上面部分的知識后,我們來再看一下如何在 FileMaker 中實現。
我們主要會用的腳本就是“從 URL 插入”,它一共有 5 個配置項。
選擇全部內容:這里是發送郵箱、不需要接收返回數據,所以勾不勾都不影響
以上就是 FileMaker 18 發 HTML 郵件的新功能。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。