Назад | Перейти на главную страницу

Отправка тысяч писем сотрудникам (Exchange)

Ежемесячный отчет для каждого сотрудника будет генерироваться приложением компании, теперь мы добавляем код, чтобы также отправить отчет по электронной почте после его создания. Каждый отчет отличается, поэтому нам нужно отправлять каждый отчет по разному адресу электронной почты.

Не лучше ли передать все это на сервер Exchange в цикле и позволить ему управлять нагрузкой? есть ли какой-то флаг, сообщающий серверу Exchange, что это сообщение имеет низкий приоритет или что-то в этом роде? или мы должны создать какую-то очередь для управления этим, и эта очередь должна отправлять n электронные письма каждые несколько минут или около того? какие-нибудь лучшие практики или советы?

Не зная объема вашей существующей организации Exchange, того, что серверы способны обрабатывать, размера писем, о которых вы говорите, и т. Д., На это нелегко ответить. Вы можете даже ничего не заметить, а то может все взбесить.

Например, если все пользователи являются локальными по отношению к серверу Exchange, это не составит большого труда. Если у вас есть 300 в удаленном офисе через T1, тогда вы будете насыщать эту ссылку на некоторое время, если электронные письма большие (при условии отсутствия QoS).

По умолчанию Exchange не заботится о флагах «приоритета». Однако вы можете включить приоритетную очередь. См. Здесь пошаговое руководство по Exchange 2010: http://howexchangeworks.com/2011/05/enables-priority-queuing-in-exchange.html

Лично я еще не видел отчета, который хотели бы видеть ВСЕ сотрудники, если только он не включал что-то о бонусах для всех. Возможно, вам будет лучше разместить отчет на чем-то вроде Sharepoint, интрасети и т. Д. И разослать инструкции о том, как сотрудники могут посещать этот отчет, когда они хотят, получать оповещения при его изменении и т. Д. В противном случае вы можете в конечном итоге обнаружить, что электронные письма, которые вы отправляете, просто удаляются, тратя время и ресурсы.

Вы, наверное, слишком долго об этом думаете. Просто отправьте электронные письма.

Предполагая, что цикл программы генерирует отчет 1, затем отправляет его по электронной почте человеку1, затем генерирует отчет 2, электронные письма человеку 2 и т. Д. Этап создания отчета, вероятно, будет достаточно долгим, чтобы вы не вызывали слишком большую нагрузку на сервер обмена . Даже небольшой сервер обмена не должен иметь проблем с обработкой нескольких писем в секунду.

Если есть проблема, вы заметите ее, наблюдая за сервером обмена при создании отчетов. Это процессоры привязаны? Он становится вялым? Дисковая очередь стремительно растет? Если да, добавьте небольшую задержку между электронными письмами.

Я бы отправил идентичное электронное письмо за одну операцию на псевдоним рассылки, который распространяется на всех тех сотрудников, для которых создается отчет.

Содержимое этого электронного письма будет содержать некоторые инструкции вместе с URL-адресом для получения отчета.

URL-адрес направляет всех на страницу, где они проходят аутентификацию (если они еще не прошли), а затем попадают в их индивидуальный отчет на основе их идентификатора пользователя.

Страница просмотра отчета может позволить им сохранить его в формате PDF или переслать на адрес электронной почты и т. Д.