Не могу отправить электронное письмо с VBA - PullRequest
0 голосов
/ 24 марта 2020

Я работаю с использованием VBA для отправки электронной почты. Когда электронная почта отправляет ее, а не прикрепляет файл к электронной почте.

Это мой некоторый код VBA:

   Set iMsg = CreateObject("CDO.Message")
   Set iConf = CreateObject("CDO.Configuration")
   Set objFSO = CreateObject("Scripting.FileSystemObject")

       iConf.Load -1    ' CDO Source Defaults
       Set Flds = iConf.Fields
       With Flds
          .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
          .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.45.1.25"
          .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
          .Update
       End With
       Dim Result() As String
       Dim xAttaches As String

      Result = Split(WorksheetFunction.Trim(xAttached), "|")

  With iMsg
      Set .Configuration = iConf
      .To = "Veerachai.M@ngerntidlor.com"
      .CC = 
      .From = "finrobo@ngerntidlor.com"
      .Subject = xSubject
      .HTMLBody = RangetoHTML(rng) & strBody
       For i = LBound(Result()) To UBound(Result())
         xAttaches = "R:\ASMP\00_AP_AUTO_MAIL\202003\BARCODE\IE238182.pdf"
        If objFSO.FileExists(xAttaches) Then
          iMsg.AddAttachment "R:\ASMP\00_AP_AUTO_MAIL\202003\BARCODE\IE238182.pdf"
        End If
     Next i
      iMsg.Send
  End With

  With Application
      .EnableEvents = True
      .ScreenUpdating = True
  End With

  Set iMsg = Nothing
  Set iConf = Nothing
  Set Flds = Nothing
End Function

Мой код может запустить и можно отправить по электронной почте. Вот так:

enter image description here

Но мне нужно прикрепить файл в E-mail.Как это:

enter image description here

Подскажите пожалуйста, как решить эту проблему.

1 Ответ

0 голосов
/ 24 марта 2020

Я не знаю, почему вы используете CDO.Message. Если вы используете Outlook для отправки электронной почты, есть простой способ использования объектов Outlook по умолчанию: все, что вам нужно, это выбрать «Библиотека объектов Microsoft Outlook» в VBA Editor -> References; тогда у вас будет доступ ко всем объектным моделям Outlook.

Sub MailExcelVbaOutlook()
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = "example@example.com" 
        .CC = ""
        .BCC = "" 
        .Subject = "Topic" 
        .HTMLBody = RangetoHTML(rng)
        .Attachments.Add ("C:\file.txt") 
       .Display or .send
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...