Отправка почты 1с 7.7 CDO.Configuration. Відправлення почти 1с 7.7 CDO.Configuration [c7]
Процедура глОтправитьПочту(АдресПолучателя = "",ТемаПисьма = "",ТелоПисьма = "",ТзЕмейл = "") Экспорт
iConf = CreateObject("CDO.Configuration");
iMsg = CreateObject("CDO.Message");
iMsg.Configuration = iConf;
iMsg.From = "Программист 1с"""" <primer@mail.ru>";
iMsg.To = АдресПолучателя;
iMsg.Subject = ТемаПисьма;
iMsg.textBody = ТелоПисьма;
iMsg.BodyPart.Charset = "windows-1251";
//В таблицу значений передаю файлы вложения
ТзЕмейл.ВыбратьСтроки();
Пока ТзЕмейл.ПолучитьСтроку() = 1 Цикл
iMsg.AddAttachment(СокрЛП(ТзЕмейл.ПутьКФайлу));
//iMsg.AddAttachment("D:\1.txt");
КонецЦикла;
iConf.Fields.Item("
Категория:
Работа с Интернет, Почтой (Mail), FTP Отправка почты через CDO (работает c SSL) &НаСервереБезКонтекста
Функция ПолучитьДанныеЯщикаСистемнойЗаписи()
СистемнаяУчетнаяЗаписьЭлектроннойПочты = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("СерверSMTP", СокрЛП(СистемнаяУчетнаяЗаписьЭлектроннойПочты.СерверИсходящейПочтыSMTP));
СтруктураНастроек.Вставить("ПользовательSMTP",СокрЛП(СистемнаяУчетнаяЗаписьЭлектроннойПочты.ПользовательSMTP));
СтруктураНастроек.Вставить("ПарольSMTP", СокрЛП(СистемнаяУчетнаяЗаписьЭлектроннойПочты.ПарольSMTP));
СтруктураНастроек.Вставить("ПортSMTP", СистемнаяУчетнаяЗаписьЭлектроннойПочты.ПортSMTP);
СтруктураНастроек.Вставить("Отправитель", СокрЛП(СистемнаяУчетнаяЗаписьЭлектроннойПочты.АдресЭлектроннойПочты));
СтруктураНастроек.Вставить("ИспользоватьSSL", СистемнаяУчетнаяЗаписьЭлектроннойПочты.ИспользоватьSSL);
Возврат СтруктураНастроек;
КонецФункции
//обработка, пример который приведен содержит ТЧ "НаОтправку" с реквизитами "Контрагент" - ссылка на справочник и "Файл" - строка, путь к файлу
//ПолучитьМассивКлиентов() - функция возвращает перечень всех клиентов из данной ТЧ
//
//АдресПолучателя(ЭлементМассива) - функция возвращает e-mail клиента
&НаКлиенте
Процедура ОтправкаПисем()
//тут был прочий код, не относящийся к отправке, он удален
МассивКлиенты = ПолучитьМассивКлиентов();
Для Каждого ЭлементМассива Из МассивКлиенты Цикл
//***************************************
Если АдресПолучателя(ЭлементМассива) = "" Тогда
Сообщить("У контрагента "+ЭлементМассива+" не указан email, письмо отправлено не будет!");
Продолжить;
КонецЕсли;
Кому = АдресПолучателя(ЭлементМассива);
Тема = "Документы";
Текст = "Документы";
СтруктураНастроек = ПолучитьДанныеЯщикаСистемнойЗаписи();
CDO_СерверSMTP = СтруктураНастроек.СерверSMTP;
CDO_ПользовательSMTP = СтруктураНастроек.ПользовательSMTP;
CDO_ПарольSMTP = СтруктураНастроек.ПарольSMTP;
CDO_ПортSMTP = СтруктураНастроек.ПортSMTP;
Отправитель = СтруктураНастроек.Отправитель;
ИспользоватьSSL = СтруктураНастроек.ИспользоватьSSL;
Письмо = Новый COMОбъект("CDO.Message");
Письмо.to = Кому;
Письмо.from = Отправитель;
Письмо.Sender = Отправитель;
//Письмо.cc=Копия;
//Письмо.bcc=СкрКопия;
Отбор = Новый Структура();
Отбор.Вставить("Контрагент",ЭлементМассива);
НайденныеСтроки = Объект.НаОтправку.НайтиСтроки(Отбор);
Для КАЖДОГО СтрДокументы ИЗ НайденныеСтроки ЦИКЛ
Письмо.AddAttachment(СокрЛП(СтрДокументы.Файл));
КонецЦикла;
Письмо.Subject = Тема;
Письмо.TextBody = Текст;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = CDO_СерверSMTP;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 1;// 0 - Do not authenticate; 1 - basic (clear-text) authentication; 2 - NTLM
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value = CDO_ПользовательSMTP;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = CDO_ПарольSMTP;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = CDO_ПортSMTP;
Если ИспользоватьSSL Тогда
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = True;
КонецЕсли;
//Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = ИспользоватьSSL;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60;
Попытка
Письмо.Configuration.Fields.Update();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Попытка
Письмо.Send();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Сообщить("Все...");
КонецПроцедуры
Категория:
Работа с Интернет, Почтой (Mail), FTP Отправка почты с помощью внешней компоненты ROM-Mail + Последняя версия ROM-Mail.dll (1.4.1) + ALS-описание + ini-файл Скачивать файлы может только зарегистрированный пользователь!
+ Примеры Использования (получение и отправка почты раз)
Скачивать файлы может только зарегистрированный пользователь!
Код 1C v 7.x
Процедура Отправить()
Флаг=0;
Попытка
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Сообщить("Не удалось загрузить ROM-Mail.dll");
Возврат;
КонецЕсли;
Исключение
Возврат;
КонецПопытки;
ВК=СоздатьОбъект("AddIn.AddInMail");
ВК.СерверОтправки=СокрЛП(СерверОтправки);
ВК.ПортОтправки=СокрЛП(ПортОтправки);
ВК.Логин=СокрЛП(Логин);
ВК.Пароль=СокрЛП(Пароль);
ВК.АутентификацияПриОтправке=флАутентификацияПриОтправке;
Если ВК.Подключиться("Отправка")=0 Тогда
Предупреждение("Не удалось подключиться к серверу!");
Возврат;
КонецЕсли;
ВК.АдресОтправителя=СокрЛП(АдресОтправителя);
ВК.ИмяОтправителя=СокрЛП(ИмяОтправителя);
ВК.АдресПолучателя=СокрЛП(АдресПолучателя);
ВК.Тема=СокрЛП(Тема);
ВК.Тело="";
ВК.Вложения=СокрЛП(Вложения);
ВК.Кодировка="windows-1251";
ВК.ТипПисьма=2;
ВК.Тело=СокрЛП(Тело);
Если ВК.Отправить()=1 Тогда
Предупреждение("Сообщение отправлено!");
Иначе
Предупреждение("Не удалось отправить сообщение!");
КонецЕсли;
ВК.Отключиться();
КонецПроцедуры
Процедура ПриОткрытии()
//
// Чтобы картинка отображалась в теле письма - цепляем ее как вложение.
// Ссылка на картинку в исходном коде html-файла не должна содержать пути.
// Т.е. <img src=""xRom.gif"" height=""40"" width=""40"" alt=""xRom.gif"" border=""0"">
СерверОтправки = "192.168.1.11";
ПортОтправки = "25";
ИмяОтправителя="Пупкин Василий";
АдресОтправителя="pupkin@kiev.ua";
АдресПолучателя="Вася Пупкин <pupkin@kiev.ua>; Василиса Пупкина<pupkina@kiev.ua>";
Тема="ВК. Пример отправки почты ROM-Mail";
Тело="текст сообщения";
ПутьЕРТ="";ИмяЕРТ="";
РасположениеФайла(ПутьЕРТ,ИмяЕРТ);
Вложения=ПутьЕРТ+"xRom.gif";
флАутентификацияПриОтправке=1;
КонецПроцедуры
Процедура ВыбратьВложения()
Имя=""; Каталог="";
Если ФС.ВыбратьФайл(0,Имя,Каталог,"Выбор файла вложения","Все(*.*)|*.*")=1 Тогда
Вложения=СокрЛП(Вложения)+?(ПустоеЗначение(Вложения)=0,";","")+Каталог+Имя;
КонецЕсли;
КонецПроцедуры
Категория:
Работа с Интернет, Почтой (Mail), FTP