在Excel中自动处理带有附件的Outlook电子邮件



我有一个Excel电子表格,包含以下5列:

  1. 发票号码,2(公司,3(主要电子邮件地址,4(次要电子邮件地址,5(帐号

我还有一个包含发票的文件夹。每张发票的文件名中都有发票编号,即Inv_12346.pdf

我想建立一个excel宏,当我提供发票号码列表时,它将:

  1. 打开电子邮件--收件人:<主要联系人,抄送:<次要联系人,以及密件抄送:<我
  2. 在主题中输入发票编号,以及
  3. 转到包含发票的文件夹,并附上名为InvNo_*.pdf的相应发票,即InvNo_123456.pdf

对于每个发票编号重复此操作,并显示电子邮件以供查看*最初,我想显示带有附件的电子邮件,直到我确信宏按预期工作。

包含预填发票的文件夹的路径为--C: \Users\christma-2\OneDrive-OurYear2Win\Documents\Colorodet\Invoice Emails\Attachments\Invoice_*.pdf

以下是我迄今为止创建的宏。我想提取带有相应发票号码的发票,并将其附在电子邮件中。

Sub Send_Email_to_List()
Dim OL As Object, MailSendItem As Object
Dim MsgTxt As String
Set OL = CreateObject("Outlook.Application")
For Each xCell In ActiveSheet.Range(Range("C1"), Range("C" & Rows.Count).End(xlUp))
user_email = xCell.Value
user_subject = "Subject Line for the Email"
user_msg = "Thank You For Submitting this email"
Set MailSendItem = OL.CreateItem(olMailItem)
With MailSendItem
.Subject = user_subject
.Body = user_msg
.To = user_email
.CC = " "
.Bcc = "clorodet20607@aol.com"
'I need help getting the correct attachment, putting the invoice number in the subject, and cc'ing the secondary contacts
.Attachments.Add ("C:Userschristma-2OneDrive - OurYear2WinDocumentsClorodetInvoice EmailsAttachmentsW1???.pdf")
.Display
End With
Next xCell
Set OL = Nothing
End Sub

查找相应联系人的电子邮件地址--收件人:<主要联系人,抄送:<次要联系人,以及密件抄送:<我,

您可以使用CreateRecipient方法创建Recipient对象。收件人的姓名;它可以是表示收件人的显示名称、别名或完整SMTP电子邮件地址的字符串。因此,没有必要搜索联系人。

Sub ResolveName()  
Dim myNamespace As Outlook.NameSpace  
Dim myRecipient As Outlook.Recipient  
Dim CalendarFolder As Outlook.Folder 

Set myNamespace = Application.GetNamespace("MAPI")  
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev")  
myRecipient.Resolve  
If myRecipient.Resolved Then  
Call ShowCalendar(myNamespace, myRecipient)  
End If 

End Sub  

Sub ShowCalendar(myNamespace, myRecipient)  
Dim CalendarFolder As Folder 

Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar) 

CalendarFolder.Display 

End Sub

您可以使用以下调用序列来获得Contact实例:

recipient.AddressEntry.GetContact()

Outlook对象模型支持自定义邮件正文的三种主要方式:

  1. Body属性返回或设置一个字符串,表示Outlook项目的明文正文
  2. MailItem类的HTMLBody属性返回或设置表示指定项的HTML正文的字符串。设置HTMLBody属性将始终立即更新Body属性。例如:
Sub CreateHTMLMail() 
'Creates a new e-mail item and modifies its properties. 
Dim objMail As Outlook.MailItem 
'Create e-mail item 
Set objMail = Application.CreateItem(olMailItem) 
With objMail 
'Set body format to HTML 
.BodyFormat = olFormatHTML 
.HTMLBody = "<HTML><BODY>Enter the message <a href="http://google.com">text</a> here. </BODY></HTML>" 
.Display 
End With 
End Sub
  1. Word对象模型可用于处理消息体。有关详细信息,请参阅第17章:使用项目机构

注意,MailItem.BodyFormat属性允许您以编程方式更改用于项正文的编辑器。

相关内容

  • 没有找到相关文章

最新更新