//функция выполняет отправку электронного сообщения с использованием внешней компоненты ROM-Mail
Процедура ОтправитьПочту()
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll");
Возврат;
КонецЕсли;
//подключение
Почта=СоздатьОбъект("AddIn.AddInMail");
Почта.СерверОтправки=СокрЛП(СерверОтправки);
Почта.ПортОтправки=СокрЛП(ПортОтправки);
Почта.АутентификацияПриОтправке=ФлагАутентификация;
Если Почта.Соединение=0 Тогда
Если Почта.Подключиться("Отправка")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу","!");
Возврат;
КонецЕсли;
КонецЕсли;
//сообщение
Почта.Важность=0;
Почта.Кодировка="windows-1251";
Почта.ТипПисьма=2;
Почта.АдресОтправителя=СокрЛП(АдресОтправителя);
Почта.ИмяОтправителя=СокрЛП(ИмяОтправителя);
//получатели
Почта.ДобавитьАдрес("АдресПолучателя",СокрЛП(ИмяПолучателя),СокрЛП(АдресПолучателя));
//вложения
Для й=1 По Вложения.РазмерСписка() Цикл
Почта.Вложения=Почта.Вложения+Вложения.ПолучитьЗначение(й)+";";
КонецЦикла;
Почта.Тема=СокрЛП(ТемаПисьма);
Почта.Тело=СокрЛП(ТекстПисьма);
//отправка
Если Почта.Соединение=0 Тогда
Сообщить("Соединение потеряно","!");
ИначеЕсли Почта.Отправить()=1 Тогда
Сообщить("Почтовое сообщение отправлено","i");
Иначе
Сообщить("Не удалось отправить сообщение","!");
КонецЕсли;
//отключение
Почта.Отключиться();
КонецПроцедуры
//процедура выполняет получение файла автообмена
Процедура Почта_Получить(База)
//настройка
П=СоздатьОбъект("AddIn.AddInMail");
П.СерверПриема=СокрЛП(База.СерверПриема);
П.ПортПриема=СокрЛП(База.ПортПриема);
П.Логин=СокрЛП(База.ПочтаЛогин);
П.Пароль=СокрЛП(База.ПочтаПароль);
П.ОставлятьНаСервере=1;
П.ПоказыватьПредупреждения=0;
П.КаталогВложений=СокрЛП(База.Импорт)+"\";
//подключение
Если П.Подключиться("Прием")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу для получения почты","!");
Возврат;
КонецЕсли;
//фильтр
Фильтр=ВРег(СокрЛП(База.Удаленная)+"-"+СокрЛП(База.Текущая));
//сообщения
Для й=1 По П.КоличествоСообщений() Цикл
Если П.ПолучитьЗаголовок(й)=1 Тогда
Если ВРег(П.Тема)=Фильтр Тогда
Если П.ПолучитьТело(й)=1 Тогда
//пометка на удаление
П.ПометитьНаУдаление(й);
//файлы
Для ф=1 По П.КоличествоФайлов() Цикл
Файл=П.КаталогВложений+П.ПолучитьФайл(ф);
Сообщить("Получен файл: "+Файл);
//сохранение
П.СохранитьФайл(ф,);
КонецЦикла;
Иначе
Сообщить("Не удалось получить тело сообщения "+й,"!");
КонецЕсли;
КонецЕсли;
Иначе
Сообщить("Не удалось получить заголовок сообщения "+й,"!");
КонецЕсли;
КонецЦикла;
//отключение
П.Отключиться();
КонецПроцедуры
//процедура выполняет отправку файла автообмена
Процедура Почта_Отправить(База)
//настройка
П=СоздатьОбъект("AddIn.AddInMail");
П.СерверОтправки=СокрЛП(База.СерверОтправки);
П.ПортОтправки=СокрЛП(База.ПортОтправки);
П.Логин=СокрЛП(База.ПочтаЛогин);
П.Пароль=СокрЛП(База.ПочтаПароль);
П.АутентификацияПриОтправке=База.Аутентификация;
//подключение
Если П.Подключиться("Отправка")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу для отправки почты","!");
Возврат;
КонецЕсли;
//создание
П.АдресПолучателя=СокрЛП(База.АдресПолучателя);
П.Тема=ВРег(СокрЛП(База.Текущая)+"-"+СокрЛП(База.Удаленная));
П.Тело="
|Отправитель: "+СокрЛП(База.Текущая)+" "+База.Наименование+"
|Получатель: "+СокрЛП(База.Удаленная);
//вложения
Каталог=СокрЛП(База.Экспорт)+"\";
Файл=ФС.НайтиПервыйФайл(Каталог+"*.*");
Пока ПустаяСтрока(Файл)=0 Цикл
//добавление
Если Лев(Файл,1)<>"." Тогда
Сообщить("Вложен файл: "+Каталог+Файл);
П.Вложения=П.Вложения+Каталог+Файл+";";
КонецЕсли;
//следующий
Файл=ФС.НайтиСледующийФайл();
КонецЦикла;
//отправка
Если ПустаяСтрока(П.Вложения)=0 Тогда
Если П.Отправить()=0 Тогда
Сообщить("Не удалось отправить почту","!");
КонецЕсли;
КонецЕсли;
//отключение
П.Отключиться();
КонецПроцедуры
! | Правила, п.13 |
! | Правила, п. 9, 24 |
Добрый день, у меня такая проблема, PDF файл создается все нормально, потом запрашивает на какой эл.адрес отправить pdf файл, я указываю пишет, что идет соединение и зависает... если указываю порт 25 то выдает ошибку (Не удалось отправить сообщение из-за сбоев на почтовом сервере, а так же проверьте почт. адрес!)
помогите пожалуйста
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll. Почтовые сообщения не формируются !!!","!");
Возврат;
КонецЕсли;
Почта=СоздатьОбъект("AddIn.AddInMail");
Почта.СерверОтправки="smtp.gmail.com";
Почта.ПортОтправки="465";
Если Почта.Соединение = 0 Тогда
Если Почта.Подключиться("Отправка")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу","!");
Возврат;
КонецЕсли;
КонецЕсли;
Почта.Важность=0;
Почта.Кодировка="windows-1251";
Почта.ТипПисьма=2;
Почта.АдресОтправителя="testtopik@gmail.com";
Почта.Логин= "test";
Почта.Пароль= "123456789";
Почта.АдресПолучателя= АдрПчт;
Почта.Вложения = КаталогИБ()+ "ExtForms\EOut\"+ Фл;
Почта.Тело = СокрЛП("Здравствуйте"+ПолноеИмяПользователя()+".");
Если Почта.Соединение=0 Тогда
Если Почта.Подключиться("Отправка")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу. ","!");
КонецЕсли;
КонецЕсли;
Если Почта.Соединение=0 Тогда
Сообщить("Соединение потеряно","!");
ИначеЕсли Почта.Отправить()=1 Тогда
Сообщить("Почтовое сообщение отправлено","i");
ФС.УдалитьФайл(КаталогИБ()+ "ExtForms\EOut\"+Фл+".pdf");
сообщить ("Успешно удален отправленный в "+ТекущееВремя()+" файл "+ Фл+".pdf");
ВремяПисьма =СокрЛП(ТекущаяДата())+" в " +СокрЛП(ТекущееВремя())+ "/"+ СокрЛП(АдрПчт);
Иначе
Сообщить("Не удалось отправить сообщение возможно из-за сбоев на почтовом сервере.","!");
Предупреждение("Не удалось отправить сообщение из-за сбоев на почтовом сервере, а так же проверьте почт. адрес!");
КонецЕсли;
ИмяФайлаКОтправке = "";
Фл= "";
АдрПчт="";
//Отключаемся
Почта.Отключиться();
КонецПроцедуры
А при чем тут gmail? Указываете свой почтовый сервер.
Если Почта.Подключиться("Отправка")=0 Тогда
спФормы.Установить("Отправлено",0);
Сообщить("Не удалось подключиться к почтовому серверу="+СокрЛП(Строка(Почта.СерверОтправки)),"!");
anatol1c @ 08.10.21, 14:06
,
Возможно, те-же проблемы, что у некоторых сайтов - с 1 числа колбасит из-за закончившегося сертификата. Где-то кеш обновился и теперь валидность не подтверждается. Конечно, это если у вас почта по ssl.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua