Bon alors je travaille sur ce projet depuis des siècles maintenant et je pensais que je pourrais partager mes découvertes avec le monde.
Le SMTP du serveur IIS
Tous les mails créé à l'aide du serveur SMTP IIS sont envoyés, en premier lieu, le répertoire de collecte. Si vous envoyez un courrier, vous devrez le faire à l'heure de Matrix pour l'y voir car il ira probablement tout de suite.
À la sortie d'un message individuel, il traverse le dossier de la file d'attente dans IIS.
Si vous voulez regarder le compteur de performance pour surveiller ce processus, regardez la "Longueur de la file d'attente à distance". (La raison en est que "Local Queue Length" surveille les mails envoyés "Localement" dans le réseau. "Remote" dans ce cas fait référence à "Outside into the world" .La définition spécifique de "Local" m'échappe quand nous envoyons pas de courrier local mais j'imagine que cela signifie en attente d'aller aux boîtes aux lettres contenues dans l'installation spécifique de IIS sur le serveur ou tout groupement local de celui-ci.)
D'un point de vue Exchange, il semble être l'équivalent de mails envoyés dans le domaine d'échange et ceux envoyés de ce domaine dans le monde plus large.
De toute façon. La longueur de la file d'attente à distance ne dit pas toute l'histoire. Vous devez également regarder la file d'attente Retry distante, le nombre de connexions sortantes actuelles et, pour la ceinture et les accolades, le nombre réel de fichiers dans le répertoire de la file d'attente.
Voici pourquoi:
- file d'attente à distance: Tous les messages qui n'ont pas encore été envoyés , cependant plusieurs fois cela a été essayé. Le nombre de courriers actuellement affectés à toutes les connexions ouvertes n'est pas pris en compte car ils sont dans un état "en cours d'essai".
- File d'attente de nouvelle tentative à distance: tous les messages qui n'ont pas encore été envoyés et qui ont déjà été attribués à ont été affectés à une connexion ouverte pour la distribution. Évidemment la livraison doit avoir échoué ou le message aurait été remis. Tous les messages actuellement affectés à une connexion ouverte pour une nouvelle tentative ne sont pas pris en compte.
- Connexions sortantes actuelles: Indique lorsque le serveur tente d'envoyer en file d'attente mails, plus d'un message peut être affecté à une connexion sortante. Les messages ainsi attribués ne sont pas comptés dans la file d'attente à distance ou dans la file d'attente de nouvelle tentative à distance. Physique
- Fichiers dans le répertoire de la file d'attente: Ce indique le nombre de messages encore en le répertoire de file d'attente. Cela diminuera au fur et à mesure que les courriers seront livrés avec succès .
Exemple: Si vous avez 0 connexions sortantes et 50 mails dans le répertoire de file d'attente puis la file d'attente à distance, Retry Queue et les fichiers physiques lirons tous à 50. Lorsqu'un indicateur de nouvelle tentative est élevée (ce qui est un cadre dans IIS), le nombre de connexions augmente et le nombre de messages dans les files d'attente diminue. Jusqu'à ce qu'un courrier soit livré, le nombre de fichiers physiques reste le même. Cependant, comme plus d'un courrier peut être envoyé sur une connexion en cours, une connexion peut entraîner des files d'attente et des files d'attente distantes de 47 ou moins. Si, au cours de l'événement de nouvelle tentative, les courriers électroniques sont correctement remis, le nombre de fichiers physiques dans le répertoire de la file d'attente diminuera. Lorsque la connexion se ferme, les compteurs de file d'attente doivent tous se stabiliser à nouveau.
Connexion
Il est possible avec.La bibliothèque Mail de Net pour spécifier un répertoire de collecte séparé de la valeur par défaut IIS. Ici, vous pouvez mettre en file d'attente des courriels et obtenir un service sur mesure pour déplacer les courriels dans le répertoire IIS où le service IIS prendra le relais et enverra des courriels en file d'attente.
Pour ce faire, vous allez rechercher la propriété "DeliveryMethod" de l'objet SmtpClient qui doit être définie sur SmtpDeliveryMethod.SpecifiedPickupDirectory.
Pour définir réellement SpecifiedPickupDirectory, vous devez définir la propriété PickupDirectoryLocation de SmtpClient.
Lorsque les messages sont livrés à cet emplacement, ils sont stockés en tant que fichiers .eml. Le nom de fichier est un GUID. Cela signifie que plusieurs courriels seront expédiés dans un ordre essentiellement aléatoire. Vous pourriez, en théorie, écrire du code pour répondre à cette situation si vous le souhaitez. Le fichier .eml suit un format standard qui peut être lu en ouvrant le fichier .eml dans le bloc-notes. L'analyse de ceci vous permettra d'extraire des informations pour un journal.
J'espère que cette vue d'ensemble de haut niveau sur la façon dont fonctionne le serveur SMTP dans IIS est d'une certaine aide pour quelqu'un dans une position similaire à celle que j'étais en Mars.