Advertisement
AlexVhr

Отправка почты через CDO

Sep 3rd, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.65 KB | None | 0 0
  1. Функция глОтправитьПисьмо(Кому, Тема, Текст, ОтКого="", знач Вложения="", HTML=0) Экспорт
  2.  
  3. // Кому - ЭлектронныеАдреса
  4. // Тема - тема сообщения
  5. // Текст - текст сообщения
  6.  
  7. cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword";
  8. cdoSendEmailAddress = "http://schemas.microsoft.com/cdo/configuration/sendemailaddress";
  9. cdoSendEmailAddress = "http://schemas.microsoft.com/cdo/configuration/sendemailaddress" ;
  10. cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword" ;
  11. cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername" ;
  12. cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing" ;
  13. cdoSMTPAccountName = "http://schemas.microsoft.com/cdo/configuration/smtpaccountname" ;
  14. cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ;
  15. cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" ;
  16. cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver";
  17. cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport";
  18. cdoSMTPUseSSL = "http://schemas.microsoft.com/cdo/configuration/smtpusessl";
  19.  
  20.  
  21. Если СокрЛП(Кому)="" Тогда
  22. Возврат 0;
  23. КонецЕсли;
  24.  
  25. Если ПустаяСтрока(ОтКого)=1 Тогда
  26. //берем адрес текущего пользователя...
  27. ОтКого = Пользователь.email;
  28. Если ПустаяСтрока(ОтКого)=1 Тогда
  29. //берем адрес фирмы
  30. ОтКого = Константа.ОснФирма.e_mail;
  31. КонецЕсли;
  32. КонецЕсли;
  33.  
  34. //устанавливаем параметры соединения
  35. MailConfig = createObject("CDO.Configuration");
  36. MailConfig.fields(cdoSendUsingMethod).value = 2; //Send the message using the network (SMTP protocol over th enetwork).
  37. MailConfig.fields(cdoSMTPServer).value = СокрЛП(Константа.SmtpСервер);
  38. MailConfig.fields(cdoSMTPServerPort).value = Константа.SmtpПорт;
  39. MailConfig.fields(cdoSMTPAuthenticate).value = Константа.SmtpАвторизация;
  40. MailConfig.fields(cdoSendUserName).value = СокрЛП(Константа.SmtpПользователь);
  41. MailConfig.fields(CdoSendPassword).value = СокрЛП(Константа.SmtpПароль);
  42. MailConfig.fields(cdoSMTPUseSSL).value = Константа.SmtpSSL; //Secure Sockets Layer
  43. MailConfig.fields.update();
  44.  
  45. //создаем сообщение
  46. Msg = createObject("CDO.Message");
  47. Msg.configuration = MailConfig;
  48.  
  49. Msg.to = Кому;
  50. Msg.from = ОтКого;
  51. Msg.subject = Тема;
  52.  
  53. Если HTML = 1 then
  54. Msg.HTMLBody = Текст;
  55. Иначе
  56. Msg.textBody = Текст;
  57. Msg.textBodypart.charset = "iso-8859-5"; //либо "koi8-r"
  58. КонецЕсли;
  59.  
  60.  
  61. Если ТипЗначенияСтр(Вложения) = "СписокЗначений" Тогда
  62. //список файлов
  63.  
  64. Для сч=1 по Вложения.РазмерСписка() Цикл
  65. ИмяФайла = Вложения.ПолучитьЗначение(сч);
  66. Msg.addAttachment("""" + ИмяФайла + """");
  67. КонецЦикла;
  68.  
  69. ИначеЕсли ПустоеЗначение(Вложения) = 0 Тогда
  70. Msg.addAttachment("""" + Вложения + """");
  71. КонецЕсли;
  72.  
  73. Попытка
  74. Состояние("Отправка сообщения...");
  75. Msg.send();
  76. Отправлено = 1;
  77. Исключение
  78. Отправлено = 0;
  79. КонецПопытки;
  80.  
  81. Если Отправлено = 0 Тогда
  82. Сообщить("Ошибка при отправке письма ("+ОписаниеОшибки()+")");
  83. ЗаписьЖурналаРегистрации(ОписаниеОшибки(),"Почта","Отправка",,5);
  84. Иначе
  85. Сообщить("Сообщение отправлено");
  86. Коммент = "Кому:"+СокрЛП(Кому)+", от кого: "+СокрЛП(ОтКого)+" Тема: "+Тема+" Текст: "+Текст+" Файлы: " + Вложения;
  87. ЗаписьЖурналаРегистрации(Коммент, "Почта" ,"Отправка",,3);
  88. КонецЕсли;
  89.  
  90. Возврат Отправлено;
  91.  
  92. КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement