Отправка электронной почты из программы
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (Новая страница: «Ниже приводится пример макроса, предложенный [http://code.google.com/u/nkornachenko/ nkornachenko], который строи…») |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | Ниже приводится пример макроса, предложенный [http://code.google.com/u/nkornachenko/ nkornachenko], который строит отчет, сохраняет его в файле и отсылает на указанный адрес электронной почты. | + | Ниже приводится пример макроса, предложенный [http://code.google.com/u/nkornachenko/ nkornachenko], который строит отчет, сохраняет его в PDF файле и отсылает на указанный адрес электронной почты. |
<syntaxhighlight lang="vbnet"> | <syntaxhighlight lang="vbnet"> | ||
... | ... | ||
| − | + | Dim B(2) | |
| − | Dim | + | |
| − | + | ||
Set B(0) = OwnerForm | Set B(0) = OwnerForm | ||
B(1) = Date | B(1) = Date | ||
B(2) = Array(CarType) | B(2) = Array(CarType) | ||
| + | |||
| + | Dim FileName, objMessage, WScript | ||
| + | FileName = ... | ||
Call System.ReportSystem.ExportReportWithParam(<id отчета>, B, FileName , "PDF") | Call System.ReportSystem.ExportReportWithParam(<id отчета>, B, FileName , "PDF") | ||
| − | + | Set WScript = CreateObject("WScript.Shell") | |
| + | WScript.Sleep 5000 'Пауза, чтобы отчет успел построиться | ||
Set objMessage = CreateObject("CDO.Message") | Set objMessage = CreateObject("CDO.Message") | ||
| − | objMessage.Subject = " | + | objMessage.Subject = "Тема письма" |
objMessage.From = "xxxxx@yyyy.by" | objMessage.From = "xxxxx@yyyy.by" | ||
objMessage.To = "xxxxx@yyyy.by" | objMessage.To = "xxxxx@yyyy.by" | ||
| Строка 40: | Строка 42: | ||
objMessage.Configuration.Fields.Update | objMessage.Configuration.Fields.Update | ||
objMessage.Send | objMessage.Send | ||
| − | |||
... | ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Школа системного администратора]] | [[Category:Школа системного администратора]] | ||
Версия 23:29, 27 октября 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") 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 ...