python自動發郵件
A. python能否實現郵件合並功能
你是想把word里預設的文本,自動給excel里的郵箱發嗎?並且根據excel里的人名word文本也會自動變化這樣?用openpyxl處理excel,再寫一個自動發郵件的方法就可以了,自動發郵件的代碼你網路一下都能找到。我之前就是這樣做給excel裡面所有的郵箱自動發郵件的。
B. python3發送到ipv6到指定郵箱
ipv4需要登錄,ipv6不需登陸,而考慮到開機的時候ipv4可能是未登錄的狀態,而qq郵箱是沒法在純ipv6的環境下使用的,因此採用ipv6下可以發送郵件的outlook郵箱。
設置該python程序開機自啟,即在C盤start目錄下加入一個批處理文件,方法是用記事本寫下如下代碼:python1.py(我命名上面的py程序為1.py,按照實際的文件名來處理),保存之後將該.txt改成.bat即變成了批處理文件然後把你的.py文件拷貝到c盤System32下即可。
ipv6狀態下需要注意遠程的電腦設置好這些之後不要反復的開機折騰,要不郵箱可能被視為發送垃圾郵件而被暫時鎖定。
C. python批量發送郵件--包括批量不同附件
小豬在公司做出納,乾的活卻包括了出納、會計、結算專員等工作,周末都要被無奈在家加班,主要還沒有加班費,簡直是被公司嚴重壓榨。每個月初都要給每個工長發預付款賬單郵件,月中發結算款賬單。重復性機械工作。
一個及格線上的程序員,最起碼的覺悟就是將重復性的機械工作自動化,於是,在我花了一個多小時,幫她給一部分工長發了一次郵箱後,默默的回來寫了這個腳本。
所以,設計要點就是一個字—— 懶 。
恩,就醬。
經過我觀察,郵件內容分為兩種,這里先說第一種,「結算款」:
(1) 郵件內容(content)不變,為固定的txt文本
(2) 附件(attch)為每個工長的結算賬單(excel文件.xlsx),此文件命名為總賬單中自動分割出來的名字(暫時不懂怎麼分割出來的=.=),格式為:
(3) 郵件主題(Subject)為附件名(不帶後綴名)
(4) 郵件接收對象(工長)的名單及其郵箱地址基本不變,偶爾變動
(5)
(1) 將工長及其郵箱地址存為CSV文件的兩列,python中將其讀取為字典形式,存儲以供後續查詢郵箱地址。
(2) 遍歷文件夾中的附件(.xlsx類型文件),對其進行兩種操作,一方面將其名字(不帶路徑和後綴)提取出來,作為郵件主題(Subject),並對Subject進一步劃分,得到其中的人名(工長);另一方面,將其傳入MIMEbase模塊中轉為郵件附件對象。
(3) 由上述得到的人名(name),在字典形式的通訊錄中,查找相應的地址(value),即為收件人名稱和地址
(4) 利用python中的email模塊和smtp模塊,登錄自己的郵箱賬號,再對每個附件,得到的收件人名和地址,添加附件,發送郵件。done
在設計過程中有幾點需要注意
(1) 有時一個郵件地址對應兩個人名,此時應該在CSV文件中分為兩行存儲,而不是將兩個人名存為同一個鍵;
(2)有賬單.xlsx文件,通訊錄里卻沒存儲此人記錄,程序應該列印提示沒有通訊記錄的人名,且不能直接退出,要保證員工看到此提示,此第一版程序還有解決此問題;
(3)此程序發送的郵件內容為純文本,若要求郵件內容有不同格式(如部分加粗,部分紅色),還有小部分需要每次更改的地方(如郵件內容包含當前月份),如何解決?(這就是第二種郵件內容,「預算款」);
(4)重名的,暫時還沒碰到,程序中也沒給出解決方案。
第一版到此,20180830,待更新
第二版更新,20180904
第三版更新,20180909
轉戰CSDN博客,更多博客見傳送門《 xiaozhou的博客主頁 》
D. 用Python發送郵件,可以群發,帶有多個附件
'''''
函數說明:Send_email_text()函數實現發送帶有附件的郵件,可以群發,附件格式包括:xlsx,pdf,txt,jpg,mp3等
參數說明:
1.subject:郵件主題
2.content:郵件正文
3.filepath:附件的地址,輸入格式為["","",...]
4.receive_email:收件人地址,輸入格式為["","",...]
'''
defSend_email_text(subject,content,filepath,receive_email):
importsmtplib
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.mime.
sender="發送方郵箱"
passwd="填入發送方密碼"
receivers=receive_email#收件人郵箱
msgRoot=MIMEMultipart()
msgRoot['Subject']=subject
msgRoot['From']=sender
iflen(receivers)>1:
msgRoot['To']=','.join(receivers)#群發郵件
else:
msgRoot['To']=receivers[0]
part=MIMEText(content)
msgRoot.attach(part)
##添加附件部分
forpathinfilepath:
if".jpg"inpath:
#jpg類型附件
jpg_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=jpg_name)
msgRoot.attach(part)
if".pdf"inpath:
#pdf類型附件
pdf_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=pdf_name)
msgRoot.attach(part)
if".xlsx"inpath:
#xlsx類型附件
xlsx_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=xlsx_name)
msgRoot.attach(part)
if".txt"inpath:
#txt類型附件
txt_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=txt_name)
msgRoot.attach(part)
if".mp3"inpath:
#mp3類型附件
mp3_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=mp3_name)
msgRoot.attach(part)
try:
s=smtplib.SMTP()
s.connect("smtp.mail.aliyun.com")#這里我使用的是阿里雲郵箱,也可以使用163郵箱:smtp.163.com
s.login(sender,passwd)
s.sendmail(sender,receivers,msgRoot.as_string())
print("郵件發送成功")
exceptsmtplib.SMTPExceptionase:
print("Error,發送失敗")
finally:
s.quit()
E. 遠程網關地址怎麼獲得
方法1:查詢網路的網管界面
由於IPv4中有一個計費系統,如果您在未關閉的情況下離開辦公室/實驗室並登錄到網路計費系統,那麼您的管理界面中將有登錄計算機的IP地址。
方法2:使用現有軟體的服務——以Pt服務為例
經常玩Pt(private torrent)的朋友肯定很熟悉這種方法。將在Pt網站的個人信息界面中記錄植入的計算機的IP。我們使用此記錄中的IPv6/IPv4地址(大多數教育網路的PT記錄是IPv6地址,大多數公共網路記錄是IPv4地址)登錄遠程桌面連接,請注意,PT網站上記錄的大多數地址包括IP地址和埠號。應該刪除埠號。
這種方法是使用Utorrent軟體(其他Pt網站允許的所有客戶端)將其設置為自動啟動(當然,至少有一顆種子正在播種)。
方法3:自編程——以Python程序為例
生命短暫。我使用python。Python是一種解釋性腳本語言,易於學習。在這里,我使用Python調用郵箱的SMTP服務發送郵件,自動獲取本地IP地址並通過郵件發送。並將啟動設置為自動啟動。啟動時,python程序將通過批處理程序自動啟動,以獲取IP並發送郵件。我將在下面給出Py源代碼,您需要注意以下步驟:
步驟1:在遠程計算機上成功安裝Python,並安裝與發送電子郵件相關的軟體包(請參閱下面Py代碼的標題)。python版本應該是X的3.0版本。
步驟2:對於郵箱,應將郵箱設置為啟用SMTP服務。
F. Python能幹什麼
1、Web開發
由於Python是一種解釋型的腳本語言,開發效率高,所以非常適合用來做Web開發。
Python有上百種Web開發框架,有很多成熟的模板技術,選擇Python開發Web應用,不但開發效率高,而且運行速度快。常用的web開發框架有:Django、Flask、Tornado等。
由於後台伺服器的通用性,除了狹義的網站之外,很多App和游戲的伺服器端也同樣用 Python實現。
2、網路爬蟲
網路爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網路爬蟲的基礎,帶動了整個Python語言的應用發展。以前國內很多人用採集器搜刮網上的內容,現在用Python收集網上的信息比以前容易很多了,如:
從各大網站爬取商品折扣信息,比較獲取最優選擇;
對社交網路上發言進行收集分類,生成情緒地圖,分析語言習慣;
爬取網易雲音樂某一類歌曲的所有評論,生成詞雲;
按條件篩選獲得豆瓣的電影書籍信息並生成表格……
3、人工智慧
Python有很多庫很方便做人工智慧,比如numpy,
scipy做數值計算的,sklearn做機器學習的,pybrain做神經網路的,matplotlib將數據可視化的。在人工智慧大范疇領域內的數據挖掘、機器學習、神經網路、深度學習等方面都是主流的編程語言,得到廣泛的支持和應用。
人工智慧的核心演算法大部分還是依賴於C/C++的,因為是計算密集型,需要非常精細的優化,還需要GPU、專用硬體之類的介面,這些都只有C/C++能做到。
4、數據分析
數據分析處理方面,Python有很完備的生態環境。「大數據」分析中涉及到的分布式計算、數據可視化、資料庫操作等,Python中都有成熟的模塊可以選擇完成其功能。
對於Hadoop-MapRece和Spark,都可以直接使用Python完成計算邏輯,這無論對於數據科學家還是對於數據工程師而言都是十分便利的。
5、自動化運維
Python對於伺服器運維而言也有十分重要的用途。由於目前幾乎所有Linux發行版中都自帶了Python解釋器,使用Python腳本進行批量化的文件部署和運行調整都成了Linux伺服器上很不錯的選擇。
Python中也包含許多方便的工具,從調控ssh/sftp用的paramiko,到監控服務用的supervisor,再到bazel等構建工具,甚至conan等用於C++的包管理工具,Python提供了全方位的工具集合,而在這基礎上,結合Web,開發方便運維的工具會變得十分簡單。
G. 如何用python自動發送郵件
注意如果使用qq的smtp轉發功能的話,需要在設置頁面中將該功能打開,然後設定密碼,改密碼就是賦值給下文password中的。
開啟smtp轉發功能文檔
[python]view plain
#fromemail.MIMETextimportMIMEText#
fromemail.MIMETextimportMIMEText
fromemail.HeaderimportHeader
msg=MIMEText('hello,sendbypython','plain','utf-8');
from_addr="*****@qq.com"#
password="******"#password
to_addr="****@qq.com"#targetemailaddress
smtp_server="smtp.qq.com"#smtpseverdomainforqqissmtp.qq.com
importsmtplib
server=smtplib.SMTP(smtp_server,25);
server.set_debuglevel(1)
server.login(from_addr,password);
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()
上面這個是沒有主題的,有主題的話建議採用下面這個代碼
下面是連續發送有主題的文件10封
[python]view plain
fromemail.HeaderimportHeader
fromemail.MIMETextimportMIMEText
fromemailimportencoders
fromemail.utilsimportparseaddr,formataddr
importsmtplib
def_format_addr(s):
name,addr=parseaddr(s)
returnformataddr((Header(name,'utf-8').encode(),addr))
from_addr="*****@qq.com"#
password="******"#password
to_addr="****@qq.com"#targetemailaddress
smtp_server="smtp.qq.com"#smtpseverdomainforqqissmtp.qq.com
fornuminrange(1,11):
msg=MIMEText('hello,sendbyTom','plain','utf-8');
msg['From']=_format_addr('Tom<%s>'%from_addr)
msg['To']=_format_addr('addministrator<%s>'%to_addr)
msg['Subject']=Header('ThegreetingfromTom','utf-8').encode()
server=smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)
server.login(from_addr,password)
#server.sendmail(from_addr,[to_addr],msg.as_string())
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()
H. 如何利用Python自動監控網站並發送郵件告警
1、監控網站
監控網站其實就是去爬網頁的源碼,每次對比或檢查網頁源碼特定位置的html代碼是否有變化即可,具體可以用
fromurllibimportrequest
page=request.urlopen("網址")
html=page.read()
就可以獲取網頁源碼;
2、發送高警
建議別用郵件,郵件發多幾次就會認為你的發件箱有發垃圾郵件的嫌疑。用 喵提醒 ,是個公眾號,可以免費發提醒到手機上。調用方法也和監控網頁代碼類似,具體自己看喵提醒的教程。
I. Python自動發送郵件多個人收件人代碼更改
msg['To'] = "[email protected];[email protected]" # 多個郵件接收者,中間用;隔開
msg['Cc'] = "[email protected];[email protected]" # 多個郵件抄送者,中間用;隔開