Имя: Пароль:
1C
1C 7.7
v7: ROM-Mail. Отправка почты из 1с
,
0 Mafiozaa
 
09.11.20
08:18
Всем привет, встал в ступор пишет ошибка не удалось отправить сообщение, понять не могу почему, знатоки подскажите)

Почта.АдресОтправителя  = "[email protected]";
  Почта.ИмяОтправителя  = "Вася";

  //указываем получателей письма
  Почта.ДобавитьАдрес("АдресПолучателя","Васяня","[email protected]");
  
  //если необходимо добавляем вложения
  Почта.Вложения = "C:\Users\Dmitriy\Desktop\123.txt";
  
  Почта.Тема  = "raz raz";
  Почта.Тело  = "dva dva";  
  
  //Пытаемся отправить
  Если Почта.Соединение=0 Тогда
       Сообщить("Соединение потеряно","!");
  ИначеЕсли Почта.Отправить()=1 Тогда
       Сообщить("Почтовое сообщение отправлено","i");
  Иначе
       Сообщить("Не удалось отправить сообщение","!");
    Конецесли;    

  //Отключаемся
  Почта.Отключиться();
КонецПроцедуры    


Процедура ПолучитьПочту()  
  
  //Пытаемся подключить компоненту
  Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
    Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll");
    Возврат;
  Конецесли;

  //Подключаемся к почте с указанными параметрами
  Почта          = СоздатьОбъект("AddIn.AddInMail");  
  Почта.СерверПриема  = "smtp.mail.ru";
  Почта.ПортПриема    = "110";  
  Почта.Логин        = "[email protected]"; //при необходимости
  Почта.Пароль      = "26031997Zxc";//при необходимости
  Почта.ОставлятьНаСервере    = 0; //необходимо ли оставлять письма в ящике
    
    //Если подключение не удачное прерываем обработку
  Если Почта.Соединение = 0 Тогда
    Если Почта.Подключиться("Прием")=0 Тогда
      Сообщить("Не удалось подключиться к почтовому серверу","!");
      Возврат;
    Конецесли;
  Конецесли;  
  
  ПринятыйФайл = "";
  Для й = 1 По Почта.КоличествоСообщений() Цикл  
    
    //Читаем заголовки писем    
    Если Почта.ПолучитьЗаголовок(й) = 1 Тогда
      
      //Читаем тексты писем
      Если Почта.ПолучитьТело(й)=1 Тогда    
        
        //Выбираем вложения писем
          Для ф = 1 По Почта.КоличествоФайлов() Цикл            
            
            //сохраняем вложение
            Почта.СохранитьФайл(ф,"");                      
          Конеццикла;        
      Конецесли;  
    Конецесли;
  Конеццикла;
  
  //Отключаемся
  Почта.Отключиться();

КонецПроцедуры
1 Mafiozaa
 
09.11.20
08:20
Все подключения он проходит, но сообщение не отправляет
2 big
 
09.11.20
08:55
rom-mail не умеет работать с ssl и tsl. Неужели он у вас работал с mail.ru, gmail и т.п.?

Надо ставить DialMail, там всё работает.
3 big
 
09.11.20
08:56
(2) Для mail.ru порт для smtp будет 25 и надо включить tsl.
4 ДенисЧ
 
09.11.20
09:00
(3) если tsl, то порт далеко не 25
5 big
 
09.11.20
09:01
(4) ХЗ. Работает ))
6 Mafiozaa
 
09.11.20
09:04
(2) Понял,буду искать дллку
7 Mikeware
 
09.11.20
09:10
(2) когда-то работал, года до 12-го...
8 Mafiozaa
 
09.11.20
09:24
(7) (5) (4) А через V7Plus.dll он будет запускать клиент почтовый? типо outlook?
9 Mikeware
 
09.11.20
09:26
(8) не пробовал. вряд ли. возьми диалмэйл, быстрее будет. ну, или через CDO пробуй
10 Mafiozaa
 
09.11.20
09:29
(9) Диалмэйл этот без клиента работает?
11 Mikeware
 
09.11.20
09:31
(10) да
12 Mafiozaa
 
09.11.20
09:33
(11) dll-ка не регистрируется
13 Mikeware
 
09.11.20
09:35
(12) печаль
14 Mafiozaa
 
09.11.20
09:49
(13)

Процедура ПриОткрытии()
Если ЗагрузитьВнешнююКомпоненту("C:\Users\Dmitriy\Desktop\1Cv77\BIN\DialMail.DLL") = 0 Тогда
    Сообщить("Неудачная попытка загрузить DialMail.dll");
Иначе
    Сообщить("Удачная попытка загрузить DialMail.dll");
КонецЕсли;
КонецПроцедуры

Процедура ОтправитьПочту()
ОтправкаПочты = СоздатьОбъект("AddIn.SMTP");
ОтправкаПочты.РабочийКаталог=СокрЛП(КаталогИБ());
ОтправкаПочты.УстановитьКодировкуИСпособКодирования(14, 1);
ОтправкаПочты.MakeContentDescriptionTag = 0;
ОтправкаПочты.ПочтоваяПрограмма = "Имя почтовой программы";
//В моем случае ошибки пишутся в отдельный каталог в текстовые файлы, имена которых соответствуют дате.
//имя файла - вложения должно быть в кавычках.
ВыбФайл = "C:\Users\Dmitriy\Desktop\123.txt";
// От кого, Кому, Копии - это адреса почты.
ОтправкаПочты.СоздатьПисьмо("[email protected]","[email protected]","","Allo","","Raz dva vsem svoim kto na svyazi",ВыбФайл);
Если ОтправкаПочты.Подключиться("smtp.mail.ru","25")=0 тогда
Сообщить("Не смогли подключиться к SMTP-серверу");
Иначе
    Сообщить("Успешное подключение к SMTP-серверу");
КонецЕсли;
Если ОтправкаПочты.ОтправитьВсеПисьма(0,1,0) = -100 Тогда
Сообщить("Успешно отправлено");
КонецЕсли;
КонецПроцедуры


Без ошибок, но и письма не видать, наверное потому что логин с паролем опустил
15 Djelf
 
09.11.20
09:50
(14) Порт то не 25й... https://help.mail.ru/mail/mailer/popsmtp
16 Mafiozaa
 
09.11.20
09:53
(15) C 465 портом ошибка подключения к смтп
17 Mafiozaa
 
09.11.20
09:55
(15) При 25 порту, подключение успешное, но письмо не уходит
18 trad
 
09.11.20
09:56
(0) пароль то напрасно засветил. Теперь меняй
19 Djelf
 
09.11.20
09:57
(16) Потому что библиотек openssl нет! В мануале по dialmail вроде все написано по этому поводу.
20 Mafiozaa
 
09.11.20
09:57
(18) Спецом зареганная почта, я уже подумал об этом, там пусто)
21 NorthWind
 
09.11.20
10:00
(4) Может работать. Есть такая опция - TLS по стандартному порту (STARTTLS).
22 Mafiozaa
 
09.11.20
10:20
(15) Их если я правильно понял, и регистрировать не надо, просто в корень кинуть
23 Djelf
 
09.11.20
10:26
(22) В тот же каталог где dialmail их нужно кинуть. У меня вот такая сборка работает: https://cloud.mail.ru/public/HKiw/xKZUkk5QE
Не сильно разбирался, какие-то библиотеки openssl не завелись...
24 Djelf
 
09.11.20
10:27
+(23) Еще нужно в код добавить Отправка.ИспользоватьSSL=1; Отправка.ИспользоватьTSL=1;
25 Mafiozaa
 
09.11.20
10:31
(23) Все равно закинул все dll ки в корень, обработал подключения со всеми ошибками, все равно эти 2 библиотеки не хотят подключатся
26 Mafiozaa
 
10.11.20
04:32
Сделал отправку через CDO. Вопрос, почему на ту почту куда ушло письмо, в майле вижу его, а в The Bat его нет, по моему мнению беда в протоколах, кто что знает
27 ДенисЧ
 
10.11.20
04:53
(26) А где в бате ты его хочешь увидеть?
28 Mafiozaa
 
10.11.20
04:55
(27) Во входящих))
29 Mafiozaa
 
10.11.20
04:56
(27) Все письма будут вложениями, и хочу в бате принимать и выгружать в определенный путь
30 Злопчинский
 
12.11.20
20:33
возьми мою отправлялку электорное ECDO с инфостарта. работает в туевой хуче контор.
для работы может понадобиться stunnel поставить. у меян админ сделал хз сколько лет назад когда мылору перестал давать на 25 порту - работает до сих пор... - на странице разработки можно почитать комменты, там все вопросы обжеваны.

http://catalog.mista.ru/public/14131/
31 Злопчинский
 
12.11.20
20:34
(26) кстати, можешь кинуть параметры, которые у тебя прописаны в cdo для отправкипо ssl/tsl?
32 Mafiozaa
 
13.11.20
03:27
(31) Держи всю процедуру, может как то иначе можно было, но сам результат меня устраивает)

Процедура ОтправкаПочты()
    Попытка
loConfig = CreateObject("CDO.Configuration");
loCdoMessage = CreateObject("CDO.Message");

loCdoMessage.Configuration = loConfig;
loCdoMessage.From    = "Тест 1C"""" <цук>";
loCdoMessage.To      = "цук";
loCdoMessage.Subject = "Тема письма";

ТекстСообщения = "Текст письма";
HTMLBody = "<html>
|<head>
|<meta content=""text/html; charset=Windows-1251"" http-equiv=""content-type"">
|<title> Тестовое сообщение </title>
|</head>
|<body>
|<h3>" + "Приветствую, сделайте возврат кода маркировки по высланным позициям! см.файлик" + "</h3>
|<p></p>
|</body>
|</html>";
loCdoMessage.BodyPart.Charset = "windows-1251";
loCdoMessage.HTMLBody = HTMLBody;

loCdoMessage.AddAttachment("C:\Users\Dmitriy\Desktop\123.txt");
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing";).            Value = 2;
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver";).           Value = "smtp.gmail.com";
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport";).       Value = "465";
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate";).     Value = 1;
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername";).         Value = "цук";
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword";).         Value = "цук";
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl";).           Value = 1;
loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60;

loConfig.Fields.Update();
loCdoMessage.Send();
Предупреждение("Письмо успешно отправленно!");
Исключение
    Предупреждение("Письмо не отправленно!");
КонецПопытки;
КонецПроцедуры
33 big
 
13.11.20
04:56
(30) (32)  А потом понадобится получить письмо и опять танцы с бубнами )))
34 Mafiozaa
 
13.11.20
05:34
(33) Получаю я батом через imap, все корректно
35 big
 
13.11.20
10:04
(34) Имелось ввиду получение в 1С
36 Mafiozaa
 
13.11.20
11:01
(35) Я понял, в 1с нет нужды принимать письма
37 Злопчинский
 
13.11.20
11:48
(36) у мну тоже так. отсылалка сделана не с целью ведения переписки с клиентом (принимать письма в 1С). а для быстрой прозрачной отправки всякизх счетов, отчетов,  и прочей хрени... работает уже хз скока ле. и у пары моих клиентов аналогично - счета отправляют, заказы поставщиками ИТД
38 Злопчинский
 
13.11.20
11:50
(32) на через майл.ру - отправляются у тебя при таких настройках?
39 Mikeware
 
13.11.20
12:18
(37) а еще - об извешениях роботом о разных событиях, порой неприятных... посмотреть с утра в папку почты проще, чем смотреть события. Хотя свой дашборд лучше почты.
40 Mafiozaa
 
16.11.20
01:54
(38) Да,на майл отправляю, все нравится
41 Злопчинский
 
16.11.20
02:13
(40) хм, надо проверить...
42 Mafiozaa
 
16.11.20
02:19
(41) есть майловская почта, скинь, отправлю тебе
43 Mafiozaa
 
16.11.20
02:19
(41) Отправлю на ту, что в профиле
Программист всегда исправляет последнюю ошибку.