Отправка электронной почты из программы

Материал из GedeminWiki
Перейти к: навигация, поиск

Ниже приводится пример макроса, предложенный nkornachenko, который строит отчет, сохраняет его в PDF файле и отсылает на указанный адрес электронной почты.

  ...
  Dim B(2)
  Set B(0) = OwnerForm
  B(1) = Date
  B(2) = Array(CarType)
 
  Dim FileName, objMessage, WScript  
  FileName = ...
 
  Call System.ReportSystem.ExportReportWithParam(<id отчета>, B, FileName , "PDF")
  Set WScript = CreateObject("WScript.Shell")
  Call WScript.Run("ping localhost", 1, True)  'Это пауза, потому что отчет не успевает 
  Call WScript.Run("ping localhost", 1, True)  'построиться до отправки так как строится в отдельном потоке
  'WScript.Sleep 5000 'Пауза, чтобы отчет успел построиться
 
  Set objMessage = CreateObject("CDO.Message")
  objMessage.Subject = "Тема письма"
  objMessage.From = "xxxxx@yyyy.by" 
  objMessage.To = "xxxxx@yyyy.by"
  objMessage.TextBody = "Текст письма"
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx.xxx.xxx.xxx" 'Адрес SMTP servera
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxx" 'Имя пользователя
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yyyyy" 'Пароль
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
  objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
  If FileName > "" Then
    objMessage.MimeFormatted = True
    objMessage.AddAttachment("file:" & FileName)
  End if
  objMessage.Configuration.Fields.Update
  objMessage.Send
  ...
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты