Question

J'ai déployé mon application Web sur notre serveur IIS 6.0 de production et tout fonctionne, sauf lorsque mon code tente d'envoyer un courrier électronique à une adresse non dans le domaine de notre serveur de messagerie. J'ai vu divers symptômes, mais cela semble le plus simple de décrire:

Erreur de syntaxe dans les paramètres ou les arguments. La réponse du serveur était la suivante: 5.7.1 Ce système n'est pas configuré pour relais le courrier

Mon application Web Obtenir cette erreur MSG utilise System.net.mail. Il réside avec l'ancienne application Web qu'il est censé remplacer quels utilise system.web.mail. Il y a un serveur SMTP sur cette même machine qui semble nécessiter une nouvelle configuration concernant le relais.

Vérification des propriétés du serveur SMTP n'a rien montré configuré pour "restrictions de relais". L'application Web de production ancienne envoie un email sans erreurs avec le serveur SMTP configuré comme décrit.

donc, en résumé, utilise-t-il du système.net.mail nécessite quelque chose de différent pour relais un email que System.web.mail?

Le web.config pour la version récente qui contient des problèmes de relais contient:

<system.net><mailSettings><smtp><network host="mail.cbmiweb.com" port="25"/></smtp>

J'ai utilisé les valeurs ci-dessus pour tous mes tests (première sur mon localhost avec XP IIS 5.1; puis sur un serveur IIS 6.0 de stadification de notre réseau local) et n'avait jamais eu aucun problème de "relais".

Le web.config pour la version plus ancienne à l'aide de System.Web.Mail ne contient rien de liée à SMTP!

Si j'ai soudainement besoin d'un nom d'utilisateur et d'un mot de passe ajouté au paramètre SMTP ci-dessus, comment se fait-il que je n'ai jamais eu besoin de "identificielles" pendant le développement?

Je ne sais pas grand chose à propos de SMTP et je ne sais vraiment même pas quoi demander l'administrateur du serveur de messagerie. Je suis très confus sur quoi faire ... merci.

Était-ce utile?

La solution

Cela me semble que l'ancienne application envoie le message directement sur le serveur de destinataires et contourne complètement votre serveur de messagerie local. Cela aurait eu lieu parce que votre application n'aurait pas eu de serveur de messagerie à utiliser configuré. Il est donc de sorte qu'il soit renvoyé pour essayer d'envoyer le courrier lui-même.

C'est généralement une mauvaise idée car elle peut entraîner des retards dans votre application en fonction de la configuration des destinataires du serveur de messagerie (nous parlons des secondes ici). En outre, si vous n'êtes pas configuré pour traiter des choses comme des listes de gris, etc., vous pouvez avoir un nombre élevé de courriels que vous pense a été envoyé, mais jamais vraiment arrivé.

Vous devez demander à l'administrateur du serveur de messagerie de configurer correctement votre serveur de messagerie local pour permettre le relais de votre machine.

ou (et c'est la voie la plus sécurisée)

Vous devez configurer un utilisateur sur votre serveur de messagerie local et utiliser votre application utilise ces informations d'identification de connexion lors de la tentative d'envoi d'e-mail.

Le SystemNeMail.com Site peut être utile. Spécifiquement la page sur Configuration SMTP .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top