【发布时间】:2013-12-28 06:16:14
【问题描述】:
我正在开发一个 VBA 程序,它将在 Outlook 中为新到达的电子邮件触发。 (标准在 Outlook 的“规则和警报”中设置。)
电子邮件应该有:-
“主题”字段包括:“WO_name/Task_name”
“Body”的第一行包括:“operation”
“String_1”、“String_2”、“String_3”和发件人的电子邮件地址将被输入一个批处理文件(总共 4 个参数)
这是我的代码:
Sub ChangeSubjectThenSend(Item As Outlook.MailItem)
WO = readCommand(Item.Subject, 1)
Task = readCommand(Item.Subject, 2)
Dim olItem As Outlook.MailItem
Dim sText As String
For Each olItem In Application.ActiveExplorer.Selection
sText = olItem.Body
Next olItem
Shell ("C:\warehouse\WO\checkInOutTask\taskOperations.bat " & WO & " " & Task & " " & Item.SenderEmailAddress & " " & sText), vbNormalFocus
End Sub
Public Function readCommand(str As String, position As Integer) As String
Dim Tempstr() As String
If position >= 1 Then
Tempstr = Split(str, "/")
readCommand = Tempstr(position - 1)
End If
End Function
它提供当前在 Outlook 中选择的电子邮件条目的内容,而不是新到达的电子邮件。
如何让脚本针对新收到的电子邮件运行?
【问题讨论】:
-
您希望您的代码在每次收到新邮件时运行?那么你应该考虑使用
ThisOutlookSession事件。你会在那里看到Inbox Add Item事件。