Хорошо, я работаю над этим проектом целую вечность, и я подумала, что могу поделиться своими результатами с миром.
SMTP-сервер IIS
Все письма, созданные с использованием SMTP-сервера IIS, в первую очередь отправляются в каталог раскладки. Если вы отправляете одно письмо, то вам придется работать в режиме Матрицы, чтобы действительно увидеть его там, потому что оно, вероятно, просто отправится сразу же.
На выходе из отдельной почты она проходит через папку очереди в IIS.
Если вы хотите наблюдать за счетчиком производительности, чтобы отслеживать этот процесс, вы можете посмотреть «Длина удаленной очереди». (Причина этого заключается в том, что «Длина локальной очереди» отслеживает почту, отправляемую «Локально» внутри сети. «Удаленный» в данном случае относится к «Вне мира». Конкретное определение «Локальный» ускользает от меня при отправке нет локальной почты, но я предполагаю, что это означает, что необходимо перейти в очередь, чтобы перейти к почтовым ящикам, содержащимся в конкретной установке IIS на сервере или любой ее локальной группе.)
С точки зрения Exchange, похоже, что это эквивалент почты, отправленной в домене Exchange, и почты, отправленной из этого домена в более широкий мир.
Так или иначе. Длина удаленной очереди не рассказывает всей истории. Вы также должны посмотреть на Очередь удаленных повторов, количество текущих исходящих соединений и, чтобы пояс и скобки сработали, фактическое количество файлов в каталоге очереди.
И вот почему:
- Удаленная очередь: все сообщения, которые не имеют
еще не было отправлено, однако много раз
это было опробовано. Номер
письма в настоящее время назначены любому открытому
соединения не учитываются, поскольку они
находятся в состоянии "быть судимым".
- Удаленная повторная очередь: все сообщения, которые
еще не были отправлены
какой-то момент в прошлом был назначен
на открытое соединение для доставки.
Очевидно, что доставка должна иметь
не удалось или сообщение было бы
доставлен. Любые сообщения в настоящее время
назначен на открытое соединение для
повторные попытки не учитываются.
- Текущие исходящие соединения: показывает, когда
сервер пытается отправить в очередь
почты, более одного сообщения может быть
назначен на исходящее соединение.
Присвоенные сообщения не являются
учитывается либо в удаленной очереди, либо
Удаленная повторная очередь. Физическая
- Файлы в каталоге очереди: это
показывает количество писем все еще в
каталог очередей. Это будет
уменьшится, поскольку письма успешно
доставляется.
Пример: Если у вас 0 исходящих подключений и 50 писем в каталоге Queue, тогда Удаленная очередь, Очередь повторов и Физические файлы будут прочитаны со значением 50. Когда установлен флаг повторения (это настройка в IIS) увеличивается количество подключений и уменьшается количество писем в очередях. До доставки почты количество физических файлов остается неизменным. Однако, поскольку в текущем соединении может быть отправлено более одной почты, соединение 1 может привести к длинам удаленной очереди и очереди повторных попыток 47 или ниже. Если во время события повтора какие-либо письма будут успешно доставлены, количество физических файлов в каталоге очереди уменьшится. Когда соединение закрывается, все счетчики очереди должны снова стабилизироваться.
Регистрация
В библиотеке почты .Net можно указать каталог раскладки отдельно от IIS по умолчанию. Здесь вы можете ставить почту в очередь и получать специальную службу для периодического перемещения писем в каталог IIS, где служба IIS вступает во владение и отправляет письма в очереди.
Для этого вам потребуется свойство DeliveryMethod объекта SmtpClient, для которого должно быть установлено значение SmtpDeliveryMethod.SpecifiedPickupDirectory.
Чтобы на самом деле установить SpecifiedPickupDirectory, вы должны установить свойство PickupDirectoryLocation SmtpClient.
Когда почта доставляется в это место, она сохраняется в виде файлов .eml. Имя файла является GUID. Это означает, что несколько электронных писем будут отправлены в произвольном порядке. Теоретически, вы можете написать код для решения этой ситуации, если хотите. Файл .eml соответствует стандартному формату, который можно прочитать, открыв .eml в блокноте. Разбор этого позволит вам извлечь информацию для журнала.
Я надеюсь, что этот обзор высокого уровня работы SMTP-сервера в IIS поможет кому-то, кто находится в положении, аналогичном тому, в котором я был в марте.