Имя: Пароль:
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 часовой задержкой бывало. админы рассказывали что почти до суток доходило, может врут, сам не помню такого.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn