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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 13: Строка 13:
 
   Call System.ReportSystem.ExportReportWithParam(<id отчета>, B, FileName , "PDF")
 
   Call System.ReportSystem.ExportReportWithParam(<id отчета>, B, FileName , "PDF")
 
   Set WScript = CreateObject("WScript.Shell")
 
   Set WScript = CreateObject("WScript.Shell")
   WScript.Sleep 5000 'Пауза, чтобы отчет успел построиться
+
   Call WScript.Run("ping localhost", 1, True)  'Это пауза, потому что отчет не успевает
 +
  Call WScript.Run("ping localhost", 1, True)  'построиться до отправки так как строится в отдельном потоке
 +
  'WScript.Sleep 5000 'Пауза, чтобы отчет успел построиться
  
 
   Set objMessage = CreateObject("CDO.Message")
 
   Set objMessage = CreateObject("CDO.Message")

Версия 17:53, 8 ноября 2010

Ниже приводится пример макроса, предложенный 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
  ...
Персональные инструменты
Пространства имён

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