懶人必備Python代碼之自動發(fā)送郵件
痛點
在傳統(tǒng)的工作中,發(fā)送會議紀要是一個比較繁瑣的任務,需要手動輸入郵件內(nèi)容、收件人、抄送人等信息,每次發(fā)送都需要重復操作,不僅費時費力,而且容易出現(xiàn)疏漏和錯誤。
但是,有了這個程序,員工們就可以輕松地將發(fā)送會議紀要的任務交給計算機來完成。程序可以自動讀取當天的日期,作為郵件標題,收件人和抄送人也可以事先設定好,不需要每次手動輸入。通過簡單地填寫郵件正文和附件,員工們就可以一鍵發(fā)送會議紀要,大大提高了工作效率和準確性。
因此,這個程序可以讓員工解脫出來,將更多的時間和精力投入到其他更加重要的工作中,提升工作效率和工作質(zhì)量,為企業(yè)發(fā)展做出更大的貢獻。
應用場景
會議紀要自動發(fā)送:對于每周例會或者每月匯報會議等重要會議,通常需要發(fā)送會議紀要給參會人員和相關(guān)部門,這個程序可以自動發(fā)送會議紀要,減少手動操作的時間和錯誤,提高工作效率。
招投標文件發(fā)送:在企業(yè)進行招投標時,需要將招標文件發(fā)送給潛在的投標人,這個程序可以自動發(fā)送招標文件,避免手動輸入郵件地址和郵件內(nèi)容的繁瑣操作,提高投標工作的效率。
活動邀請函發(fā)送:對于企業(yè)的各種活動,如產(chǎn)品發(fā)布會、客戶慶祝會等,需要發(fā)送邀請函給參加者,這個程序可以自動發(fā)送邀請函,減少重復的手動操作和錯誤,提高工作效率。
項目進度匯報發(fā)送:對于項目管理人員,需要定期向管理層和項目組成員發(fā)送項目進度匯報,這個程序可以自動發(fā)送項目進度匯報,節(jié)約時間和精力,提高項目管理效率。
總之,這個程序可以應用于很多需要發(fā)送郵件的場景,無論是企業(yè)內(nèi)部的還是與外部的交流溝通,都可以通過這個程序來提高工作效率。
源代碼
import wx import datetime import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication class MyFrame(wx.Frame): def __init__(self): wx.Frame.**init**(self, None, title="發(fā)送郵件", size=(400, 300)) panel = wx.Panel(self) # 創(chuàng)建控件 self.title = wx.StaticText(panel, label="郵件標題:", pos=(20, 20)) self.title_input = wx.TextCtrl(panel, pos=(100, 20), size=(250, -1)) self.memo = wx.StaticText(panel, label="郵件正文:", pos=(20, 60)) self.memo_input = wx.TextCtrl(panel, style=wx.TE_MULTILINE, pos=(100, 60), size=(250, 100)) self.send_button = wx.Button(panel, label="發(fā)送", pos=(150, 200), size=(80, -1)) # 設置默認值 today = datetime.date.today().strftime("%Y-%m-%d") self.title_input.SetValue(today + "會議紀要") #顯示對齊的多行文本 self.memo_input.SetValue("大家好:附件中是今天的會議紀要") # 綁定事件 self.send_button.Bind(wx.EVT_BUTTON, self.on_send) def on_send(self, event): # 獲取郵件信息 title = self.title_input.GetValue() memo = self.memo_input.GetValue() # 設置郵件內(nèi)容 message = MIMEMultipart() message['From'] = "skruggswzq@zusmail.com" message['To'] = "lgalperinpyf@zusmail.com,mtarasciovgz@zusmail.com,sharvestkxw@zusmail.com,ebazinetbto@zusmail.com,spatryjpn@zusmail.com,dsittnerxko@zusmail.com,tbrassilqoy@zusmail.com,ihartgravesvmt@zusmail.com" message['Cc'] = "greihlingmjo@zusmail.com" message['Subject'] = title message.attach(MIMEText(memo)) # 添加附件 filepath = "D:\\\\每周例會紀要.xlsx" with open(filepath, "rb") as f: attachment = MIMEApplication(f.read(), _subtype="xlsx") attachment.add_header('Content-Disposition', 'attachment', filename=filepath.split("\\\\")[-1]) message.attach(attachment) # 發(fā)送郵件 smtp = smtplib.SMTP() smtp.connect("smtp.exmail.qq.com") smtp.login("skruggswzq@zusmail.com", "password") # 請?zhí)鎿Q為您的郵箱密碼 smtp.sendmail("skruggswzq@zusmail.com", message['To'].split(",") + message['Cc'].split(","), message.as_string()) smtp.quit() # 提示發(fā)送成功 wx.MessageBox("郵件發(fā)送成功!", "提示") app = wx.App() frame = MyFrame() frame.Show() app.MainLoop()
代碼說明
段代碼是一個 Python 程序,使用 wxPython 模塊創(chuàng)建了一個 GUI 界面,其中包含了郵件標題、正文和發(fā)送按鈕等控件。當用戶點擊發(fā)送按鈕時,程序會自動將郵件發(fā)送給指定的收件人,并彈出一個提示框提示用戶發(fā)送成功。
以下是代碼的大致流程:
導入所需的 Python 模塊,包括 wxPython、datetime、smtplib、MIMEText、MIMEMultipart 和 MIMEApplication 等模塊。
創(chuàng)建一個 MyFrame 類,繼承自 wx.Frame,用于創(chuàng)建 GUI 界面。
在 MyFrame 類中創(chuàng)建郵件標題、正文和發(fā)送按鈕等控件,并設置默認值和綁定事件。
當用戶點擊發(fā)送按鈕時,程序會調(diào)用 on_send() 方法,獲取郵件標題和正文等信息,然后將郵件內(nèi)容封裝成 MIMEMultipart 對象。
程序會讀取指定的附件文件,并將附件添加到郵件中。
程序會連接指定的 SMTP 服務器,并使用指定的郵箱賬號和密碼進行登錄。
程序會調(diào)用 SMTP 對象的 sendmail() 方法將郵件發(fā)送給指定的收件人。
發(fā)送成功后,程序會彈出一個提示框,提示用戶發(fā)送成功。
最后,程序進入主循環(huán),等待用戶操作界面。
需要注意的是,程序中的一些字符串(如郵箱地址、SMTP 服務器地址、附件路徑等)都是需要根據(jù)實際情況進行替換的。另外,這段代碼并沒有提供完整的異常處理,實際使用時需要根據(jù)實際情況進行修改。
效果如下所示
到此這篇關(guān)于懶人必備Python代碼之自動發(fā)送郵件的文章就介紹到這了,更多相關(guān)Python自動發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件
這篇文章主要為大家介紹了Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02