Имя: Пароль:
1C
1С v8
Проблема с отправкой писем из 1С8 - уходят не все письма
0 jq
 
12.04.21
11:03
Добрый день, есть вопрос по отправке почты из 1С8, конфигурация УНФ 1.6. Отправляю письма-рассылки клиентам, адресаты в письме добавляются через слепые копии, сделано ограничение - не более 5 слепых копий в одном письме. Правда бывают случаи, когда пользователи занесли 2-3 почтовых адреса через запятую в одно поле контактной информации для электронного адреса. В этом случае, как я понимаю, слепых копий получается больше...
1 jq
 
12.04.21
11:17
Проблема в следующем - исходя из кода 1С и отладочных сообщений письма отправляются, например, отправлено 20 писем, получателей 100. Если смотреть в отправленных в Outlook, то там показывает меньше писем, например, 14, т.е. часть писем вроде как не отправилось. В чем может быть затык, где и на какой стороне они "теряются"? Может ли это быть из-за большого кол-ва слепых копий в одном письме? Или это фильтруется уже каким-то образом на стороне Outlook? Или почтовый провайдер как спам определяет и блокирует отправку? Но часть писем то уходит... Может какой-то таймаут можно задать между командами отправки, как это сделать и где? В общем подскажите, что смотреть и в какую сторону копать? Может кто-то сталкивался с подобной проблемой...

    // отправка писем
    ПрофильПочты = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Основная");
    
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = Профильпочты.СерверИсходящейПочты;
    Профиль.ПользовательSMTP = Профильпочты.ПользовательSMTP;
    Профиль.ПарольSMTP = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ПрофильПочты.Ссылка, "Пароль, ПарольSMTP").ПарольSMTP;
    Профиль.АдресСервераIMAP = "outlook.office365.com";
    Профиль.Пользователь = Профильпочты.ПользовательSMTP;
    Профиль.Пароль = Профиль.ПарольSMTP;
    Профиль.ИспользоватьSSLSMTP = Ложь;
    Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина;
    Профиль.Таймаут = "999";
    Профиль.ПортSMTP = Профильпочты.ПортСервераИсходящейПочты;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
    
    НовоеПисьмо = Новый ИнтернетПочтовоеСообщение;
    Текст = НовоеПисьмо.Тексты.Добавить();
    Текст.Текст = Объект.Письмо;
    Текст.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
    ТекДата = Формат(ТекущаяДата(), "ДЛФ=Д");
    НовоеПисьмо.Тема = "Данные по остаткам " + ТекДата;
    НовоеПисьмо.Отправитель = Профиль.Пользователь;
    НовоеПисьмо.ИмяОтправителя = "MyName";

    Почта = Новый ИнтернетПочта;

    Попытка
        Почта.Подключиться(Профиль);
        Сообщить("Подключено");
    Исключение
        Сообщить("Не удалось подключиться к серверу");
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

    Счетчик = 0;

    КолвоПисем = 0;
    КолвоПолучателей = 0;
    
    Для Каждого Элемент Из Получатели Цикл
        НовоеПисьмо.СлепыеКопии.Добавить(Элемент.КакСвязаться);
        Счетчик = Счетчик + 1;
        КолвоПолучателей = КолвоПолучателей + 1;
        
        Если Счетчик = 5 Тогда
            Попытка
                Почта.Послать(НовоеПисьмо);
                КолвоПисем = КолвоПисем + 1;
                Сообщить("Письмо отправлено " + ТекущаяДата());
                Счетчик = 0;
                НовоеПисьмо.СлепыеКопии.Очистить();
            Исключение
                Сообщить("Не удалось отправить письмо");
                Сообщить(ОписаниеОшибки());
                Счетчик = 0;
            КонецПопытки;
        КонецЕсли;
    КонецЦикла;

    Если Счетчик <> 0 Тогда
        Попытка
            Почта.Послать(НовоеПисьмо);
            Сообщить("Письмо отправлено " + ТекущаяДата());
            КолвоПисем = КолвоПисем + 1;
            Счетчик = 0;
            НовоеПисьмо.СлепыеКопии.Очистить();
        Исключение
            Сообщить("Не удалось отправить письмо");
            Сообщить(ОписаниеОшибки());
            Счетчик = 0;
        КонецПопытки;
    КонецЕсли;
    
    Почта.Отключиться();
    
    Сообщить("Писем отправлено: " + КолвоПисем + ", получателей: " + КолвоПолучателей);
    Сообщить("Соединение завершено");
2 Garykom
 
гуру
12.04.21
11:21
1. включить контроль адресов (скорее всего письма на кривые через , не уходят)
2. не отправлять через слепые копии, слать персонально
3 Garykom
 
гуру
12.04.21
11:22
(2)+ 3. Для рассылок использовать специальные сервисы и по апи
4 rphosts
 
12.04.21
11:22
(2)+1 Возможно уходит но только для корзины спама.
5 Lama12
 
12.04.21
11:24
(1) 1. Что в логах 1С?
2. Попроси админов создать технологический почтовый сервер на который всегда шли копию любого письма отправляемого с 1С.
3. Что говорят админы почты? На сервер вообще письма приходят?
6 jq
 
12.04.21
11:40
(2) Попробую, проверю
(4) А это где можно посмотреть? В почтовом сервере? Или в Outlook?
(5) На какой сервер? С админами сложно, их нет у клиентов... Попробую попросить, чтобы как-то проверили, узнали.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан