1. 程式人生 > >Outlook VBA自動處理郵件

Outlook VBA自動處理郵件

需求描述

公司裡面每天都會有很多郵件,三分之一都是不需要看的,Outlook的過濾功能不錯,都可以處理掉。還有些郵件,根據正文或者附件做一下處理自動轉發出去就行了。於是上網蒐集了一些資料,寫個了小程式,共享一下,以後可以參考,也希望對大家有點用處。

實現

廢話少說,直接上程式碼吧。開啟Outlook,按Alt+F11開啟程式碼編輯器,輸入下面的程式碼。可能有些兄弟不知道怎麼入手,後面會放幾個連結做參考。

Sub AutoResponseReceipt(item As MailItem)
    Debug.Print ("receive an email")

    Dim id As
String Dim SubjectString As String Dim sender As String Dim email As Outlook.MailItem On Error GoTo Err id = item.EntryID ' 先獲取郵件的ID Set email = Application.Session.GetItemFromID(id) SubjectString = email.subject ' 郵件主題 sender = email.SenderEmailAddress ' 郵件的傳送人地址
Debug.Print ("new email arrivaved: subject is " & SubjectString & " sender is " & sender) ' 校驗主題,這裡是對主題做過濾,不合適的直接返回不處理 Dim index As Integer index = InStr(SubjectString, "小票") If 0 = index Then index = InStr(SubjectString, "receipt") If 0 = index Then Return
End If End If ' 下面這一段是我自己的一些處理邏輯,呼叫程式處理附件, ' 然後將程式處理後的結果當做附件轉發給另一個人 ' 獲取附件並執行小票生成程式 Dim PathPrefix As String PathPrefix = "E:\document\receipt_tool\" Dim InputFileList As New Collection ' 這個列表存放收到的附件 Dim OutputFileList As New Collection ' 存放程式生成的結果 Dim AttachFile As attachment ' 附件 For Each AttachFile In email.attachments ' email.attachments是所有附件 Debug.Print ("attachment: " & AttachFile.FileName) Dim InputFile As String Dim OutputFile As String InputFile = PathPrefix & AttachFile.FileName OutputFile = PathPrefix & AttachFile.FileName & ".docx" Debug.Print ("input file is " & InputFile) Debug.Print ("output file is " & OutputFile) AttachFile.SaveAsFile (InputFile) ' 儲存附件 Dim cmd As String cmd = """" & PathPrefix & "receipt.exe" & """" & " " & InputFile & " " & OutputFile Debug.Print ("command string: " & cmd) Shell (cmd) ' 執行指令碼,生成結果 InputFileList.Add (InputFile) OutputFileList.Add (OutputFile) 'Kill (InputFile) ' 這裡刪除的話總會把生成的檔案同時刪掉 Next If OutputFileList.Count = 0 Then Debug.Print ("no attachment") End If ' 轉發郵件 Dim OutMail As Object Set OutMail = Outlook.Application.CreateItem(olMailItem) With OutMail .To = "[email protected]" ' 要轉發郵件的收件人地址 .subject = "列印:" & email.subject ' 轉發郵件的主題 .Body = "幫忙列印小票,謝謝!" & Chr(10) & email.SenderEmailAddress & Chr(10) & email.SenderName ' 轉發郵件的正文 End With Dim SendAttach As String ' 將程式生成的結果新增到附件中 For i = 1 To OutputFileList.Count ' MsgBox (SendAttach) SendAttach = OutputFileList(i) OutMail.attachments.Add (SendAttach) Next MsgBox ("send") OutMail.Send ' 傳送郵件 OutMail.Delete ' 刪除郵件,沒用了 Err: ' 刪除生成的檔案 For i = 1 To OutputFileList.Count Kill (OutputFileList(i)) Next For i = 1 To InputFileList.Count Kill (InputFileList(i)) Next email.Delete ' 刪除收到的郵件 ' 下面幾個是釋放物件,其實沒有也無所謂 Set InputFileList = Nothing Set OutputFileList = Nothing Set OutMail = Nothing End Sub

編輯完儲存,在”開始->規則->建立規則”中新增一個過濾規則,在”如何處理該郵件”中選擇執行指令碼,並選擇這個指令碼。

參考連結

另外,在MSDN上可以直接搜尋想要檢視的物件。

相關推薦

Outlook VBA自動處理郵件

需求描述 公司裡面每天都會有很多郵件,三分之一都是不需要看的,Outlook的過濾功能不錯,都可以處理掉。還有些郵件,根據正文或者附件做一下處理自動轉發出去就行了。於是上網蒐集了一些資料,寫個了小程式,共享一下,以後可以參考,也希望對大家有點用處。 實現

VBA自動傳送郵件

Sub sendMailforCheck() Dim Subj As String Dim EmailAddr As String, Emailcc As String Dim msg As String Dim attachFileName

Excel VBA開發自動傳送郵件

一、.設定Outlook郵箱帳(略不是本文章的重點) 二、.設定Outlook信任中心如下步驟         若沒有做如下操作設定,則Excel VBA呼叫Outlook自動傳送郵件時提示如下 2.1 Outlook->工具->信任中心 2.2 程式設計訪

OCR表格識別—企事業單位必備自動處理表格軟件

表格識別 雲脈OCR技術 樓主的一些朋友問樓主,樓主所在公司處理大量紙質表格表單使用了哪種方式?那麽,樓主在這裏統一回復一下,樓主所在公司使用的是雲脈OCR表格識別。 可能到這裏有些小夥伴就會問了,雲脈OCR表格識別www.yunmai.cn是什麽?與人工錄入方式相比,有什麽優勢嗎? 首先,

通過編程為Outlook 2007添加郵件規則

str href intern creat rule XML ons gen 小程序 Outlook 所支持的郵件規則相當有用,我們經常需要針對某些特征的郵件做特殊的處理。例如將其移動到某個特定文件夾,或者刪除它等等。 Outlook所支持的郵件規則主要兩大類:收到郵件時和

Outlook2016 自動接收郵件的設置

utl 時間 接收 ima com png -s span mil 在這個選項裏就可以設置郵件的接收時間了Outlook2016 自動接收郵件的設置

網絡裝機和kickstart自動處理

pxePXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial f

redmine創建新聞,自動郵件給項目組所有成員

redmin 接受 clas 9.png es2017 mage class 檢查 mine redmine創建新聞,自動發郵件給項目組所有成員: 1.添加用戶至公共項目內 2.配置系統郵件推送配置 3.檢查用戶接受推送配置 3.使用管理員賬戶發布新聞(不能自

利用python自動郵件

return ddr weather gin ade today code 每天 inf #coding:utf-8 import smtplib from email.mime.text import MIMEText from email.header import

java windows自動化-mail自動郵件

需要 -m vax catch 全部 post ont 地址 兩種 本文旨在讓測試人員了解如何發郵件 發郵件的話,最簡單的事是直接手動發郵件,但是在自動化測試中,應做到讓機器或者代碼來自動發送郵件,筆者大概了解以下幾種方法,總有一款口味適合你:1java代碼來做下面即為我的

Python自動郵件-yagmail庫

pass pan 單個 mail quest aid 忘記 rda 授權碼 之前寫過用標準庫使用Python Smtplib和email發送郵件,感覺很繁瑣,久了不用之後便忘記了。前幾天看知乎哪些Python庫讓你相見恨晚?,看到了yagmail第三方庫,學習過程中遇到一些

Outlook 2016 自動發送/接收無法正常工作

服務器 Exchange 如果您的自動/發送接收由於某種原因停止工作,可能會非常令人沮喪,因為您必須記住手動執行發送/接收(F9)。如果您遇到Outlook無法自動發送或接收電子郵件的問題,可以嘗試以下幾項操作。#1 發送/接收 被停用這個解決方案在Outlook 2013中都適用於,在今天的Outl

outlook vba開發要點

方式 tail out utl nbsp tails customize name zh-cn 1.學學基礎的VB語法 https://www.yiibai.com/vba/vba_programming_charts.html 2.找一個樣例看看 VBA編程實現自動回復郵

SQL Server 2008 自動郵件HTML表格

自動發郵件 ont bus return select borde layout ati fix DECLARE @emailBody NVARCHAR(MAX); SET @emailBody = N‘<style>table{table-layout:

python自動郵件

tms with eve mtp cool 多個 郵件標題 smtplib rom 想著能用程序自動發郵件就好了,想到就動手寫了一個自動發郵件的腳本。 一:前提準備(我使用的是qq郵箱) 1、開通qq郵箱的smtp服務 2、上代碼 # -*- coding: utf-8

python 自動郵件

一、一般發郵件的方法 Python對SMTP支援有smtplib和email兩個模組,email負責構造郵件,smtplib負責傳送郵件。 注意到構造MIMETEXT物件時,第一個引數就是郵件正文,第二個引數是MIME的subtype,傳入'plain'表示純文字,最終的MIME就是‘text/plain

樹莓派從裝系統,連線wifi 到每次登入自動郵件

我自己有一個樹莓派,放那很久硬是沒有用到。今天在工作不忙的情況下,梳理一下樹莓派的使用。 首先,你需要下載一個樹莓派的映象檔案。樹莓派下載連結, 樹莓派首先需要把你下載的這個系統燒到一個cf卡里面,其實就是寫到cf卡上。這個各個系統有專門的軟體。 我主要分享的寫完硬碟之後的樹莓派

Jenkins設定自動郵件

安裝Jenkins方法詳解:https://www.cnblogs.com/lizhe860/p/9901257.html 一、設定全域性變數   從首頁依次進入系統工具→系統設定     二、在專案配置中設定專案全域性變數   設定觸發

outlook郵箱無法收到郵件的坑

因開發中遇到需要傳送郵件到outlook企業郵箱。 一:專案框架使用的是php + phalapi 二: 安裝和配置 從 PhalApi-Library 擴充套件庫中下載獲取 PHPMailer 包,如使用: $ git clon

Exchange/Office365 自動處理腳本:環境準備篇(一)

conn ise 相關 -exec rev use sof ant set 一、服務器要求操作系統:Windows Server 2008/2012 R2網絡要求: 加入域 允許訪問office365相關網址 開通到Exchange/Skype 的端口443,5985,5