Outlook VBA收件人电子邮件
我正在尝试提取收件人电子邮件地址并插入SQL数据库,但我得到一个运行时错误,需要424对象 以下内容以黄色突出显示“Set recips=Mail.Recipients” 我不知道我做错了什么,任何帮助都将不胜感激Outlook VBA收件人电子邮件,vba,outlook,Vba,Outlook,我正在尝试提取收件人电子邮件地址并插入SQL数据库,但我得到一个运行时错误,需要424对象 以下内容以黄色突出显示“Set recips=Mail.Recipients” 我不知道我做错了什么,任何帮助都将不胜感激 Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim Atmt As attachment Dim FileName As String Dim i As Integer Dim
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim Atmt As attachment
Dim FileName As String
Dim i As Integer
Dim strPrompt As String
Dim vError As Variant
Dim sErrors As String
i = 0
For Each Atmt In Item.Attachments
Debug.Print Atmt.FileName
If (UCase(Right(Atmt.FileName, 4)) = UCase("docx")) Or _
(UCase(Right(Atmt.FileName, 3)) = UCase("pdf")) Or _
(UCase(Right(Atmt.FileName, 3)) = UCase("doc")) Then
i = i + 1
End If
Next Atmt
If i > 0 Then
strPrompt = "You have attached a document. Is this a CV Submission?"
If MsgBox(strPrompt, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check for Attachment") = vbNo Then
Cancel = False
Else:
Dim myNamespace As Outlook.NameSpace
Dim recip As Outlook.Recipient
Dim recips As Outlook.Recipients
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
' Create the connection string.
sConnString = "Provider=SQLOLEDB;Data Source=WIN-NBST3PHVFV4\ECLIPSE;" & _
"Initial Catalog=OBlive;" & _
"User ID=outlook;Password=0Zzy007;"
' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set myNamespace = Application.GetNamespace("MAPI")
Set recips = Mail.Recipients
' Open the connection and execute.
conn.Open sConnString
Set rs = conn.Execute("INSERT INTO dbo.Submissions (CV_Sent, Consultant, Timestamp, Recipient) VALUES ( '1','" & myNamespace.CurrentUser & "', CURRENT_TIMESTAMP, '" & recip.Address & "' )")
' Clean up
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
End If
End If
End Sub
应用程序\u ItemSend
之前,您确定它已正确初始化吗?[添加了:您在评论中链接到的代码片段收到一个名为mail
的Outlook.MailItem作为参数;这使得@simoco建议尝试Set recips=Item。收件人
(项目是您的参数名)很有希望;当然,只有在调用代码正确初始化该参数时,它才会起作用。]recip
,但我看不出您在哪里为它赋值我看不出您在哪里声明/初始化了
Mail
对象。应该是Set recips=Item.Recipients
?我不确定它是否正确初始化。我正试图重新使用[链接]中的代码,这真的很有帮助,不是吗!