Имя: Пароль:
1C
1С v8
Как ускорить отправку писем через объект ИнтернетПочта
0 ksergey
 
25.11.16
15:13
Добрый день.
Прошу помощи в поиске решения проблемы.
Речь идет об отправке писем через объект ИнтернетПочта.

Стандартная схема работы с объектом ИнтернетПочта следующая:
(это есть в примерах 1с, и у меня используется такая же)

Профиль = Новый ИнтернетПочтовыйПрофиль;

ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;

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


Замечено, что метод  Почта.Подключиться(Профиль)   занимает  приличное время (до 2сек).
И при массовой отправке писем этот процесс занимает длительное время.

Вопрос к вам коллеги следующий:  кто-нибудь работает по нижеприведенной схеме ?
Нет ли в это схеме скрытых нюансов ?


Профиль = Новый ИнтернетПочтовыйПрофиль;
Почта = Новый ИнтернетПочта;
Попытка
     Почта.Подключиться(Профиль);
   Исключение
      //ОТКАЗ отправки
   КонецПопытки;

Цикл по СпискуКонтрагентов
     ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;

    Попытка
          Почта.Послать(ПочтовоеСообщение);
    Исключение
            //обработка ошибки
    КонецПопытки
КонецЦикла;

Почта.Отключиться();
1 ksergey
 
25.11.16
15:18
хочу пояснить почечу возник этот бестолковый вопрос

понятно, что я опробовал эту схему.
Сделал небольшую тест-обработку, и на тестовой отправке получил ускорение в 2-2,5 раза...
далее перенес эту схему в рабочую обр-ку, создал набор тест-данных и выполнил 3 тестовых прогона
(отправка с 2-х разных ящиков корпоративного почтового сервера)

и вот здесь самое интересное - вылез такой момент, что в одном из случаев почтовый сервер отправил НЕ все письма, т.е. обработка в лог-файл записала что все письма успешно отправлены, а по факту – 3 письма из 9-ти не пришли на мои ящики…
запустил повторно – и на этот раз действительно всё пришло
2 oleg_km
 
25.11.16
15:18
логи надо посмотреть на по почтовиках, может какие-то антиспамные проверки. А может криво настроен DNS. Вариантов масса. А с простого почтового клиента лучше?
3 Spieluhr
 
25.11.16
15:28
В последних версиях Exchange есть ограничение по количеству писем в единицу времени. Через PowerShell скриптом управляется
4 newbling
 
25.11.16
16:09
А можно 1 раз подключиться перед циклом?
5 Dunemaster
 
25.11.16
16:16
(1) А почему вы не проверяете результат "Послать"?
6 ksergey
 
25.11.16
16:22
(4) у меня Подключение сработало, и реально скорость отправки раза в 3 быстрее была

(5) не понял что проверять? о каком результате речь?
это же метод-он никакого результата не возвращает...

у меня метод Почта.Послать() установлен в Попытку
и соот-но все ошибки попадают на исключение, и они пишутся в лог-файл
7 Вафель
 
25.11.16
16:26
ну посмотри в логах, а дошли ли они до сервака
8 ksergey
 
25.11.16
16:43
таки повторюсь-собственно сам вопрос был
>> кто-нибудь работает по нижеприведенной схеме ?

возможно сама схема предложенная мною, в принципе не будет работать?