Ниже приведен код функции глобального модуля:
Функция глОтправитьПисьмо (ПармПисьмо ,ПармФайлы ,ТипАдреса ) Экспорт Если ТипЗначенияСтр(ПармПисьмо )<>"СписокЗначений" Тогда Сообщить("Неправильный формат переменных" ,"!" ); Возврат 0 ; КонецЕсли; ТекРезультат =0 ; ТекАдрес =ПармПисьмо .Получить ("Адрес" ); ТекТема =ПармПисьмо .Получить ("Тема" ); ТекТекст =ПармПисьмо .Получить ("ТекстСообщения" ); ТекАвтор =ПармПисьмо .Получить ("Автор" ); Если ТипАдреса =1 Тогда Если глВнешняяПочта .Подключиться ("Отправка" )=1 Тогда //отправляем так глВнешняяПочта .Кодировка ="koi8-r" ; глВнешняяПочта .АдресОтправителя ="mailrobot@mydomain.ru" ; глВнешняяПочта .ИмяОтправителя =ТекАвтор ; глВнешняяПочта .Тема =ТекТема ; глВнешняяПочта .Тело =ТекТекст +РазделительСтрок+"С уважением, " +ТекАвтор ; глВнешняяПочта .АдресПолучателя =ТекАдрес ; Если ТипЗначенияСтр(ПармФайлы )="СписокЗначений" Тогда ТекВложения ="" ; Для к =1 по ПармФайлы .РазмерСписка () Цикл ТекВложения =ТекВложения +?(к =1 ,"" ,";" )+ПармФайлы .ПолучитьЗначение (к ); КонецЦикла; глВнешняяПочта .Вложения =ТекВложения ; Иначе глВнешняяПочта .Вложения ="" ; КонецЕсли; Если глВнешняяПочта .Отправить ()=1 Тогда //получилось ТекРезультат =1 ; Сообщить("Почта отправлена напрямую на адрес " +ТекАдрес ,"i" ); Иначе //не получилось КонецЕсли; глВнешняяПочта .Отключиться (); КонецЕсли; ИначеЕсли ТипАдреса =0 Тогда Если глПрямаяПочта .Подключиться ("Отправка" )=1 Тогда //отправляем так глПрямаяПочта .Кодировка ="koi8-r" ; глПрямаяПочта .АдресОтправителя ="mailrobot@mydomain.local" ; глПрямаяПочта .ИмяОтправителя =ТекАвтор ; глПрямаяПочта .Тема =ТекТема ; глПрямаяПочта .Тело =ТекТекст +РазделительСтрок+"С уважением, " +ТекАвтор ; глПрямаяПочта .АдресПолучателя =ТекАдрес ; Если ТипЗначенияСтр(ПармФайлы )="СписокЗначений" Тогда ТекВложения ="" ; Для к =1 по ПармФайлы .РазмерСписка () Цикл ТекВложения =ТекВложения +?(к =1 ,"" ,";" )+ПармФайлы .ПолучитьЗначение (к ); КонецЦикла; глПрямаяПочта .Вложения =ТекВложения ; Иначе глПрямаяПочта .Вложения ="" ; КонецЕсли; Если глПрямаяПочта .Отправить ()=1 Тогда //получилось ТекРезультат =1 ; Сообщить("Почта отправлена напрямую на адрес " +ТекАдрес ,"i" ); Иначе //не получилось КонецЕсли; глПрямаяПочта .Отключиться (); КонецЕсли; Если ТекРезультат =0 Тогда глПочта .Подключиться ("MAPI" ,"" ,"" ); глПочта .НовоеСообщение (); глПочта .ДобавитьАдрес (ТекАдрес ); глПочта .Заголовок =ТекТема ; глПочта .Текст =ТекТекст ; Если ТипЗначенияСтр(ПармФайлы )="СписокЗначений" Тогда Для к =1 по ПармФайлы .РазмерСписка () Цикл глПочта .ДобавитьФайл (ПармФайлы .ПолучитьЗначение (к )); КонецЦикла; КонецЕсли; Попытка глПочта .Послать (); ТекРезультат =1 ; Исключение ТекРезультат =0 ; КонецПопытки; КонецЕсли; Иначе Сообщить("Неверный тип адреса почты" +ТекАдрес ,"!!!" ); КонецЕсли; Если ТекРезультат =1 Тогда ЗаписьЖурналаРегистрации("<" +ТекАдрес +"> " +ТекТема ,"Почта" ,"Отправлена" ,,3 ); Иначе ЗаписьЖурналаРегистрации("<" +ТекАдрес +"> " +ТекТема ,"Почта" ,"Ошибка" ,,5 ); КонецЕсли; Возврат ТекРезультат ; КонецФункции
Вернуться к статье "Работа с электронной почтой"
|