|
v7: Отправка почты из 1С | ☑ | ||
---|---|---|---|---|
0
work92
25.09.15
✎
08:23
|
Всем прив….Может кто подскажет в чем ошибка при отправке почты или этот .dll не активный
//******************************************* Процедура Отправка() Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll"); Возврат; Конецесли; Почта= СоздатьОбъект("AddIn.AddInMail"); Почта.СерверОтправки = "smtp.mail.ru"; Почта.ПортОтправки = "2525"; Почта.Логин ="[email protected]" ; Почта.Пароль = "admin111"; Если Почта.Соединение = 0 Тогда Если Почта.Подключиться("Отправка")=0 Тогда Сообщить("Не удалось подключиться к почтовому серверу","!"); Иначе Сообщить("Подключен"); Конецесли; Конецесли; ///СпрПочта=СоздатьОбъект("Справочник.Почтовик"); //Текст=СоздатьОбъект("текст"); // СпрПочта.ВыбратьЭлементы(); //Пока СпрПочта.ПолучитьЭлемент() = 1 Цикл //ВедемНаз=СокрЛП(СпрПочта.Шифр)+".txt"; //КонецЦикла; //Каталог = "D:\Бух почта и проч\Пачки\"; //ФС.УстТекКаталог(Каталог); //ИмяФайла = ""; //ИмяФайла = ФС.НайтиПервыйФайл(ВедемНаз); //Если ИмяФайла <> "" Тогда // Сообщить("найден"+ИмяФайла); //Иначе //Сообщить("Не найден файл") // КонецЕсли; //Почта.Важность = 0; // Почта.Кодировка = "windows-1251"; Почта.ТипПисьма = 2; Почта.АдресОтправителя ="[email protected]"; Почта.ИмяОтправителя ="Дим"; //указываем получателей письма //Почта.ДобавитьАдрес("АдресПолучателя","Юкола Техно","[email protected]"); АдресПолучателя="[email protected]"; ИмяПолучателя="Берк"; Почта.ДобавитьАдрес("АдресПолучателя",ИмяПолучателя,АдресПолучателя); //если необходимо добавляем вложения //Почта.Вложения = ИмяФайла; Почта.Тема = "Тета Акт "; Почта.Тело = "тут"; //Пытаемся отправить Если Почта.Соединение=0 Тогда Сообщить("Соединение потеряно","!"); ИначеЕсли Почта.Отправить()=1 Тогда Сообщить("Почтовое сообщение отправлено","i"); Иначе Сообщить("Не удалось отправить сообщение","!"); Конецесли; //Отключаемся КонецПроцедуры |
|||
1
work92
25.09.15
✎
08:23
|
Пишет что подключен но не отправляет
|
|||
2
Mikeware
25.09.15
✎
08:24
|
Ошибка там же, где и всегда...
|
|||
3
work92
25.09.15
✎
08:25
|
эта где
|
|||
4
Mikeware
25.09.15
✎
08:26
|
В ДНК...
|
|||
5
vde69
25.09.15
✎
08:27
|
(3) в прокладке между монитором и креслом
зы зачем левая длл когда есть штатный функционал? |
|||
6
work92
25.09.15
✎
08:28
|
Может есть ответ по делу
|
|||
7
vde69
25.09.15
✎
08:35
|
Почта.ПортОтправки = "2525";
ты уверен? а вообще без описания ошибки - фиг победишь... |
|||
8
work92
25.09.15
✎
08:45
|
Раньше писал 25 и тоже нет отправки
|
|||
9
Злопчинский
25.09.15
✎
08:58
|
Не мучайся
Юзай http://catalog.mista.ru/public/14131/ Можно использовать как интерактивно так и программно вызывать с передачей параметров для отправки письма Все что надо - правильно прописать параметры подключения к почте |
|||
10
varelchik
25.09.15
✎
09:24
|
не удачная компонента.
используй dialmail. |
|||
11
botman4
25.09.15
✎
15:32
|
вот примерчеГ, все работает, вполне сносно!
https://yadi.sk/d/-U4F7m3TjKJiR |
|||
12
vde69
25.09.15
✎
16:45
|
Функция ОтправитьПисьмо (Письмо, МассивАдресов, СсылкаНаОбъект, Регистратор, Комментарий = "", УчетнаяЗапись = Неопределено, РегистрироватьОшибки = Истина, Отправка = Истина) Экспорт
_УчетнаяЗапись = УчетнаяЗапись; Если УчетнаяЗапись = Неопределено Тогда _УчетнаяЗапись = ПолучитьСистемнуюУчетнуюЗапись(); КонецЕсли; Если не _УчетнаяЗапись.ИспользоватьДляОтправки Тогда Возврат Ложь; КонецЕсли; Если Не Письмо.ОправлятьПочтовыеУведомления Тогда Возврат Ложь; КонецЕсли; Если МассивАдресов = Неопределено Тогда Возврат Ложь; КонецЕсли; Если МассивАдресов.Количество() = 0 Тогда Возврат Ложь; КонецЕсли; //Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.Сделка") Тогда // Если СсылкаНаОбъект.ОтправленыеУведомления.Найти(Регистратор,"Источник") <> Неопределено Тогда // Возврат Ложь; // КонецЕсли; //КонецЕсли; _Отправка = Отправка; Если не Отправка Тогда Если не _УчетнаяЗапись.ОтложенаяОтправкаПочты Тогда _Отправка = Истина; КонецЕсли; КонецЕсли; Если не _Отправка Тогда // запись в регистр отложеной отправки Запись = РегистрыСведений.ДоставкаПочты.СоздатьМенеджерЗаписи(); Запись.МассивОтправки = Новый ХранилищеЗначения(МассивАдресов); Запись.Объект = СсылкаНаОбъект; Запись.ШаблонПисьма = Письмо; Запись.Оправлен = Ложь; Запись.Комментарий = Комментарий; Запись.ДокументРегистратор = Регистратор; Запись.Записать(Истина); Иначе // собствено отправка ТемаПисьма = СобратьЭлементПочтовогоСообщения(Письмо.Тема, СсылкаНаОбъект); СообщениеПисьма = СобратьЭлементПочтовогоСообщения(Письмо.Сообщение, СсылкаНаОбъект, Комментарий); Если Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTML ИЛИ Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками Тогда ОбработатьПереносСтроки(ТемаПисьма); ОбработатьПереносСтроки(СообщениеПисьма); КонецЕсли; СистемнаяПочта = СокрЛП(_УчетнаяЗапись.АдресЭлектроннойПочты); ТипСообщения = Неопределено; Профиль = СформироватьИнтернетПрофиль(_УчетнаяЗапись); Попытка Сообщение = Новый ИнтернетПочтовоеСообщение; Сообщение.Тема = ТемаПисьма; Сообщение.Отправитель = СистемнаяПочта; Для Каждого ПочтовыйАдрес из МассивАдресов Цикл Если Найти(ПочтовыйАдрес, "@") > 0 Тогда Сообщение.Получатели.Добавить(ПочтовыйАдрес); КонецЕсли; КонецЦикла; Если Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTML ИЛИ Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками Тогда Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.HTML); ИначеЕсли Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.РазмеченныйТекст Тогда Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.РазмеченныйТекст); Иначе Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст); КонецЕсли; Почта = Новый ИнтернетПочта; Почта.Подключиться(Профиль); Почта.Послать(Сообщение); Почта.Отключиться(); //Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.Сделка") Тогда // оСделка = СсылкаНаОбъект.ПолучитьОбъект(); // НоваяСтрока = оСделка.ОтправленыеУведомления.Добавить(); // НоваяСтрока.Источник = Регистратор; // оСделка.ОбменДанными.Загрузка = Истина; // оСделка.Записать(); //КонецЕсли; Исключение Если РегистрироватьОшибки Тогда ЗарегистрироватьОшибкуОтправкиПочты(СсылкаНаОбъект, Письмо, МассивАдресов, ОписаниеОшибки(), Регистратор, Комментарий); КонецЕсли; Возврат Ложь; КонецПопытки; КонецЕсли; Возврат Истина; КонецФункции |
|||
13
vde69
25.09.15
✎
16:46
|
(12) у меня этот код работает уже 8 лет, в день примерно 100 писем шлет, работает как зверь....
|
|||
14
Builder
25.09.15
✎
17:33
|
Может рассказать человеку про SSL?
Или пусть еще помучается? |
|||
15
Garykom
гуру
25.09.15
✎
17:55
|
(14) может еще про stunnel заодно рассказать?
|
|||
16
HawkEye
25.09.15
✎
20:46
|
(0) лови
CDOConfig = СоздатьОбъект("CDO.Configuration"); CDOMessage = СоздатьОбъект("CDO.Message"); CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2; //для работы без Exchange CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = СокрЛП(вхФилиал.СерверОтправки); // smtp.mail.ru CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = 25; // 25 CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = вхФилиал.АутентификацияПриОтправке; CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value = СокрЛП(вхФилиал.ПочтаЛогин); // CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = СокрЛП(вхФилиал.ПочтаПароль); // 123 CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = 0; CDOConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60; CDOConfig.Fields.Update(); CDOMessage.Configuration = CDOConfig; CDOMessage.From = СокрЛП(вхФилиал.ПочтовыйАдрес); // [email protected] CDOMessage.To = СокрЛП(вхФилиал.АдресПолучателя); // [email protected] CDOMessage.Subject = СокрЛП(вхФилиал.Заголовок); CDOMessage.TextBody = "Автообмен. Отправитель: " + СокрЛП(вхФилиал.Наименование) + " " + ТекущаяДата()+" - "+ТекущееВремя();; // "Отправлено из 1С" CDOMessage.textBodypart.charset="windows-1251"; Сообщить("Адрес получателя: "+вхФилиал.АдресПолучателя); стр=прм_КаталогБазы+"PC\" + СокрЛП(вхФилиал.ИмяФайлаВыгрузки); Сообщить("Имя файла выгрузки: "+стр); Если ФС.СуществуетФайл(стр)=1 Тогда CDOMessage.AddAttachment(стр); Иначе стр=прм_КаталогБазы+"CP\" + СокрЛП(вхФилиал.ИмяФайлаВыгрузки); Сообщить("Ищем файл: "+стр); Если ФС.СуществуетФайл(стр)=1 Тогда CDOMessage.AddAttachment(стр); Иначе Сообщить("Не найден файл выгрузки: "+стр); а=1/0; КонецЕсли; КонецЕсли; Сообщить("Идет отправка сообщения ..."); Попытка CDOMessage.Send(); Сообщить("Отправлен "); Исключение Сообщить("Не удалось отправить отчет "); КонецПопытки; |
|||
17
Serginio1
25.09.15
✎
21:23
|
||||
18
0xFFFFFF
25.09.15
✎
21:25
|
(13) Заголовок как бэ намекает, что этот твой чудно зверский код в 7.7 работать будет не очень... :)
|
|||
19
0xFFFFFF
25.09.15
✎
21:26
|
(10) в 7.7 всю жизь пользовались Rom-mail, проблем не было ни разу.
|
|||
20
Builder
25.09.15
✎
22:16
|
(19) До тех пор пока яндекс и мейлру и прочие не включили SSL.
Для своего корпоративного почтового сервера она конечно будет работать. |
|||
21
Злопчинский
25.09.15
✎
22:17
|
(16) как бы в (9) оно и есть - только полностью готовое к работе + полезные мелочи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |