VBA-收到电子邮件后更改Outlook主题行

VBA-收到电子邮件后更改Outlook主题行,vba,outlook,ado,Vba,Outlook,Ado,我写了一个脚本,它的预期行为应该是改变收到的电子邮件的主题行 这是因为第三方程序监视Outlook文件夹,并根据主题行以某种方式将其发布到虚拟文件柜 我已经写了下面的代码,所有的更改都可以,但是主题行没有被更改-有人能解释一下吗 Sub AmendSubject(myItem As Outlook.MailItem) Dim strBranch As String Dim strPolRef As String Dim strTo As String Dim cnn As ADODB.Con

我写了一个脚本,它的预期行为应该是改变收到的电子邮件的主题行

这是因为第三方程序监视Outlook文件夹,并根据主题行以某种方式将其发布到虚拟文件柜

我已经写了下面的代码,所有的更改都可以,但是主题行没有被更改-有人能解释一下吗

Sub AmendSubject(myItem As Outlook.MailItem)

Dim strBranch As String
Dim strPolRef As String
Dim strTo As String

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rsSQL As String

Dim strSubject As String

Set cnn = New ADODB.Connection

Set rs = New ADODB.Recordset
'Places the Customer Email Address in a string
strTo = myItem.To
strTo = Replace(strTo, "'", "")

cnn.Open "Provider=SQLOLEDB;Data Source=my-srv;Initial Catalog=DB;User ID=xxxx;Password=xyz;"
'SQL Statement
rsSQL = "SELECT TOP 1 [c].[B@] AS [Branch], p.[PolRef@] AS [Ref] FROM [dbo].[ic_yyclient] AS c" & _
" INNER JOIN [dbo].[ic_brpolicy] AS p ON [c].[B@] = [p].[B@] AND [c].[Ref@] = [p].[Ref@]" & _
" LEFT OUTER JOIN [dbo].[ic_BD_ATS1] AS ats1 ON [p].[B@] = [ats1].[B@] AND [p].[PolRef@] = [ats1].[PolRef@]" & _
" WHERE [Ptype] IN ('PC','TW') AND (c.[Email] = '" & strTo & "' OR ats1.[Email] = '" & strTo & "' OR ats1.[Parents_email] = '" & strTo & "') AND [Term_code] IS NULL" & _
" ORDER BY [ats1].[PolRef@] desc"

Debug.Print rsSQL

rs.Open rsSQL, cnn, adOpenForwardOnly

With rs
 While Not .EOF
        strBranch = !Branch
        strPolRef = !Ref
        .MoveNext
 Wend
End With

strSubject = "REF: 0" & strBranch & "-" & strPolRef & "-C<Email To Client>NB Documentation Email"
myItem.Subject = strSubject
myItem.Save

rs.Close

Set rs = Nothing
Set cnn = Nothing

End Sub

您是否已使邮件项目可见。Display方法并在调试模式下使用F8逐步完成了代码?您好,否-今天上午我将试一试。干杯。它确实更改了“显示的”电子邮件的主题行,但没有对其进行修改,因为“文件夹”中的电子邮件仍然有旧的主题行:/Hmmm。您是否将此作为运行脚本规则的一部分运行?请参阅建议删除此计算机上的规则的一部分,并且不要将该项标记为已读。@DavidZemens-先生,您的建议太棒了!