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