Имя: Пароль:
1C
 
Отправка писем на неправильные адреса
0 rooffy
 
13.03.19
17:03
Добрый день, вопрос вот какой:
Есть рассылка в 1С и иногда она не происходит из-за неправильных адресов почты.
Нужно чтобы если почта не отправилась выдавать какое-то сообщение, чтобы вручную не шерстить всех адресатов.
Код отправки примерно такой:

    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = ОбщегоНазначениеПривелигированный.АдресСервераSMTPРассылки();
    Профиль.ПользовательSMTP = ОбщегоНазначениеПривелигированный.ПользовательSMTP();
    Профиль.ПарольSMTP          = ОбщегоНазначениеПривелигированный.ПарольSMTP();
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
    
    Почта = Новый ИнтернетПочта;
    Попытка
        Почта.Подключиться(Профиль);        
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;

    Сообщение = Новый ИнтернетПочтовоеСообщение;
    Сообщение.ИмяОтправителя = "Отправитель ";
    Сообщение.Отправитель = ОбщегоНазначениеПривелигированный.ОтправительSMTP();
    Сообщение.Тема = "Тема письма";        
    Сообщение.Тексты.Добавить("Сообщение");
    Сообщение.Получатели.Добавить("НеправильныйАдрес");

    Попытка
        Если ЗначениеЗаполнено(Сообщение.Получатели)  Тогда
            Почта.Послать(Сообщение);                        
        КонецЕсли;            
    Исключение
        Инфо = ИнформацияОбОшибке();
        Сообщить(ОписаниеОшибки());
    КонецПопытки;    

При этом никаких ошибок не появляется, верный адрес или нет, сообщение якобы отправлено.
Так вот в описании метода Послать() в синтакс-помощнике есть такое:
Возвращаемое значение:

Тип: Соответствие.
Если почтовый сервер не принял какой-нибудь из адресов получателей, то возвращаемое значение содержит соответствие ошибочный получатель - сообщение об ошибке.
При возникновении других ошибочных ситуаций, генерируется исключение.

Но когда я проверяю что возвращает мне этот Послать() то там пустое соответствие, якобы все отправилось.
Можно ли как-то поймать эту ошибку?
1 rooffy
 
14.03.19
11:51
вверх
2 sieben
 
14.03.19
12:07
Почему ты думаешь, что почтовый сервер не принял какой-нибудь из адресов получателей?
3 ДенисЧ
 
14.03.19
12:09
В случае почты ты не узнаешь, что адрес неправильный... Сейчас сервера не говорят о том, что адрес неправильный... Защита от спама.
4 polosov
 
14.03.19
12:10
(0) Это особенность почтового протокола. Сервер не проверяет сразу же правильность адреса. Он отправляет как есть, ответ приходит от конечного почтового домена.
5 arsik
 
гуру
14.03.19
12:11
(0) Ну проверяй ответы. Если в ответе ошибка, исключай это емейл для следующих отправок.
6 Bigbro
 
14.03.19
12:42
"сообщение якобы отправлено" - оно не якобы, оно отправлено.
но отправлено != доставлено
и если в процессе доставки возникли проблемы, то о них почтовые сервера сообщат друг другу по обратной цепочке. но произойти это может с существенной задержкой, у нас в некоторые моменты пиковых перегрузок письма в почте сервер обрабатывал почти с 2 часовой задержкой бывало. админы рассказывали что почти до суток доходило, может врут, сам не помню такого.
Независимо от того, куда вы едете — это в гору и против ветра!