gifts2017

Отправка почты с использованием CDO-компоненты (встроенная в Win2K и выше)

Опубликовал Ashtray (Ashtray) в раздел Обмен - Email рассылки

Надо было сделать отправку доков клиентам в pdf. Настройка локалки на работе хз какая. Сами админы не могли помочь. Все библиотеки, которые представлены в этой рубрике, не подошли. У одних пользователей работает только DialMail, у других только ROM-Mail, на терминале вообще ничего не работает. На всех компах пошло только это. С чем и хотел поделиться.
К сайту microsoft.com не обращается.
Функция ОтправкаПоПочте_ВБС(ВложениеПисьма, АдресПолучателя, ТемаПисьма, ТекстПисьма = "") Экспорт
    Попытка

        loConfig = CreateObject("CDO.Configuration");
        loCdoMessage = CreateObject("CDO.Message");

        loCdoMessage.Configuration = loConfig;
        loCdoMessage.From = "web@domenname.ru";
        loCdoMessage.To = АдресПолучателя;
        loCdoMessage.Subject = ТемаПисьма;
        loCdoMessage.textbody = "";
        loCdoMessage.AddAttachment(ВложениеПисьма);

        loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = "192.168.0.1";
        loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 1;
        loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = "Pasword";
        loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60;
        loConfig.Fields.Update();
        loCdoMessage.Send();

        Возврат 1;
    Исключение
        Возврат 0;
    КонецПопытки;
КонецФункции

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1224744016 1,45Kb
25.09.09
299
.1224744016 1,45Kb 299 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Плутенко (Noy) 23.10.08 11:27
Баян.
давно используется в обработках на этом сайте.
например: http://infostart.ru/projects/2680/
http://infostart.ru/projects/266/
http://infostart.ru/profile/13406/projects/2329/
Причем можно без скрипта, а прямо из языка 1С через СоздатьОбъект("CDO.Message");
2. Андрей Скляров (coder1cv8) 23.10.08 11:35
О! Автор открыл для себя CDO! :)
P.S. ScriptControl здесь ни к чему...
3. Сhe Burashka (CheBurator) 23.10.08 14:11
+майлру может и не пропустить, если from - чужой или не заполнен
4. Артур Аюханов (artbear) 24.10.08 09:43
Да и тему можно было бы поменять :(
"Вообще без библиотек (vb script)" это о чем вообще ? :)
ValentinV; +1 Ответить
5. Valentin57 (ValentinV) 27.10.08 10:43
Только что хотел написать про не уместное название темы,
а artbear уже написал.
Ставлю + artbear и - автору за название темы.
Извините, но такое ощущение, что название дают рекламные агенты.
Результат. На сайте трудно найти стало что-то нужное.
Или что-бы не было повтора.
Зачем же захламлять не профессиональными выражениями.
Просьба. Чтобы в мусорку не отправлять, дайте название темы,
отражающее сущность вашей разработки.
6. Алексей (LelikOFF) 29.10.08 08:53
http://www.dimac.com/ от туда jmail компонентой пользуюсь уже лет 5 - везде работает!
7. Михаил Хаов (мх) 29.10.08 11:39
8. Михаил Хаов (мх) 29.10.08 11:53
9. jeckfs (jeckfs) 03.11.08 17:11
присоединяюсь к Noy, только сказал бы - боянище :) зачем программисту 1с выполнять работу сисадмина?
10. Осипов Сергей (fixin) 20.12.11 13:02
Я честно говоря не знал, что можно использовать CDO, но рекомендую автору оформить все более грамотно с точки зрения повтороного юзания кода, как у меня (я написал, когда узнал про CDO):


Функция СоздатьСтруктуруПисьмаCDO()
	//Код Гения 1С
	Р = Новый Структура();
	Р.Вставить("СерверSMTP", );
	Р.Вставить("ПользовательSMTP", );
	Р.Вставить("ПортSMTP", 25);
	Р.Вставить("SSL", ложь);
	Р.Вставить("Отправитель", );
	Р.Вставить("Кому", );
	Р.Вставить("ПарольSMTP", );
	Р.Вставить("Тема", );
	Р.Вставить("Текст", );
	Р.Вставить("Вложения", Новый Массив());
	Р.Вставить("Копия", );
	Р.Вставить("СкрытаяКопия", );
	Р.Вставить("ДляОтвета", );
	Р.Вставить("Аутентификация ", 1); //0 - анонимно, 1 - базовая, 2 - NTLM 
	Р.Вставить("ТаймАут", 60); //в секундах
	
	Возврат Р;
КонецФункции

Функция ОтправитьПисьмоЧерезCDO(СтруктураCDO) Экспорт
	//Код Гения 1С
	//http://www.paulsadowski.com/wsh/cdo.htm
	Письмо = Новый COMОбъект("CDO.Message");
	Р = Новый Структура("ОК, Объект, Описание", ложь, Письмо, "");
	Письмо.to = СтруктураCDO.Кому;
	Письмо.from = СтруктураCDO.Отправитель;
	Письмо.cc = СтруктураCDO.Копия;
	Письмо.bcc = СтруктураCDO.СкрытаяКопия;
	Для Каждого Элемент Из СтруктураCDO.Вложения Цикл
		Письмо.AddAttachment(Элемент);
	КонецЦикла;
	Письмо.Subject = СтруктураCDO.Тема;
	Письмо.TextBody = СтруктураCDO.Текст;
	Письмо.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 = СтруктураCDO.Аутентификация; 
	Письмо.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;
	Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = СтруктураCDO.SSL;
	Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = СтруктураCDO.ТаймАут;
	Письмо.Configuration.Fields.Update();
	
	Попытка
		Письмо.Send();
	Исключение
		Р.ОписаниеОшибки = ОписаниеОшибки();
		Возврат Р;
	КонецПопытки;
	
	Р.ОК = истина;
	
	Возврат Р;
	
	
КонецФункции

...Показать Скрыть
12. Епрст (Ёпрст) 20.12.11 13:12
+11
[:]||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||[:]
13. rusrus rusrus (rusrus) 24.06.12 09:36
Была бы возможность поставить ва плюса- поставил бы
14. sai_ NT (sai_NT) 24.06.12 10:58
(10) fixin, ошибочка закралась:
или (предпочтительней)
Р = Новый Структура("ОК, Объект, ОписаниеОшибки", ложь, Письмо, "");

или
Р.Описание = ОписаниеОшибки();
15. Осипов Сергей (fixin) 24.06.12 12:15
(14) согласен. есть такое дело. ;-)
16. Sergey Afanasyev (Afanasyev.sv@mail.ru) 14.10.14 08:29
Доброго времени суток.
Вложение приходит некорректно. При открытии пишет, что файл поврежден и не открывается. Ответ не могу найти нигде.
Подскажите, вдруг, кто сталкивался. Как победить?
17. Sergey Afanasyev (Afanasyev.sv@mail.ru) 14.10.14 11:33
Разобрался. Вдруг кому пригодится.
Необходимо в iMsg.TextBody устанавливать какой-либо текст, хватает даже пустого символа (где iMsg = Новый COMОбъект("CDO.Message");)
18. Евгений Шабалин (xzorkiix) 05.12.14 17:20
(6) LelikOFF, простите, но как его скачать?
19. Константин Эльдемель (seacat) 12.02.15 04:32
Жаль только что пример из 10 комментария в 7.7 не заработает.
в примере из темы я бы добавил
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;
у меня без него не работало.
20. mikhailovaew (mikhailovaew) 05.11.15 09:13
вроде гугл и мейл больше с CDO не работают. Есть решение?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа