Добавление вложения PDF в электронное письмо Outlook - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь понять, как прикрепить документ PDF к электронной почте Outlook с помощью VBA. Это проект для представителей службы поддержки клиентов компании, в которой я работаю.

Они получают этот PDF-файл в свой почтовый ящик Outlook. Есть ли способ указать заголовок этого электронного письма (возможно, в ячейке), чтобы прикрепить PDF-файл к электронному письму, которое отправляет моя программа? Или пересылается вместе с электронным письмом?

Я очень ценю любую помощь, которую может предложить каждый. Понятия не имею, с чего начать.

Sub RFAEmail ()

Текущий код:

Dim OutApp As Object Dim OutMail As Object Dim strbody As String Dim strbody1 As String Dim strbody2 As String Dim strbody3 As String Dim strbody4 As String Dim strbody5 As String Dim strbody6 As String Dim strbody7 As String Dim strbody8 As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody1 = "" & Space(1) & Range("B5")
strbody2 = "Customer:" & Space(1) & Range("C5")
strbody3 = "" & Space(1) & Range("D5")
strbody4 = "Current:" & Space(1) & Range("E5")
strbody5 = "Proposed:" & Space(1) & Range("F5")
strbody6 = "Changes:" & Space(1) & Range("H5")
strbody7 = "Other Notes:" & Space(1) & Range("I5")
strbody8 = "PDF" & Space(1) & Range("G5")

strbody = strbody1 & vbNewLine & strbody2 & vbNewLine & strbody3 & vbNewLine & strbody4 & vbNewLine & strbody5 & vbNewLine & strbody6 & vbNewLine & strbody7 & vbNewLine & strbody8


On Error Resume Next
With OutMail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = "JOB CHANGE" & Space(1) & Range("B5")
    .Body = strbody
    .Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

MsgBox «Запрос отправлен», vbApplicationModal, «Complete»

End Sub

1 Ответ

0 голосов
/ 20 июня 2020

Вам необходимо сохранить прикрепленный файл на диске, чтобы его можно было отправить позже. Метод Attachment.SaveAsFile сохраняет вложение по указанному пути. Например:

Sub SaveAttachment()  
 Dim myInspector As Outlook.Inspector  
 Dim myItem As Outlook.MailItem  
 Dim myAttachments As Outlook.Attachments 

 Set myInspector = Application.ActiveInspector  
 If Not TypeName(myInspector) = "Nothing" Then  
   If TypeName(myInspector.CurrentItem) = "MailItem" Then  
     Set myItem = myInspector.CurrentItem  
     Set myAttachments = myItem.Attachments  
     'Prompt the user for confirmation  
     Dim strPrompt As String  
     strPrompt = "Are you sure you want to save the first attachment in the current item to the Documents folder? If a file with the same name already exists in the destination folder, it will be overwritten with this copy of the file."  
     If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then  
       myAttachments.Item(1).SaveAsFile Environ("HOMEPATH") & "\My Documents\" & _  
       myAttachments.Item(1).DisplayName  
     End If  
   Else  
     MsgBox "The item is of the wrong type."  
   End If  
 End If  
End Sub

Метод Attachments.Add создает новое вложение в коллекции Attachments. Источником вложения может быть файл (представленный полным путем в файловой системе с именем файла) или элемент Outlook, составляющий вложение.

Sub AddAttachment() 
 Dim myItem As Outlook.MailItem 
 Dim myAttachments As Outlook.Attachments 

 Set myItem = Application.CreateItem(olMailItem) 
 Set myAttachments = myItem.Attachments 
 myAttachments.Add "C:\Test.doc", _ 
 olByValue, 1, "Test" 
 myItem.Display 
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...