9
votes

Impossible d'envoyer des courriels à un domaine externe à l'aide de SMTP

Je ne suis pas en mesure d'envoyer des courriels à des adresses de domaine externes telles que "user.one@asdf.com" à l'aide du code ci-dessous. xxx

i obtenir une exception -

boîte aux lettres indisponible. La réponse du serveur était la suivante: 5.7.1 Impossible de relais pour xxx@example.com

si je modifie la méthode de livraison à - xxx

Je suis capable d'envoyer les courriels sur ma machine locale. Mais il échoue sur le site de production avec une exception -

Impossible d'obtenir un répertoire de prise en charge IIS

Pouvez-vous me suggérer quoi faire?


0 commentaires

4 Réponses :


1
votes

Vous devez généralement authentifier avec le serveur de messagerie externe à l'aide d'un nom d'utilisateur / mot de passe. Comme vous utilisez un serveur externe, cela ne saura pas les informations d'identification que vous passez. Cela peut être votre problème.


0 commentaires

2
votes

Si vous deviez rechercher l'enregistrement MX pour l'adresse de destination (dans votre exemple, il est asdf.com), puis utilisez-le pour la propriété hôte de SmtpClient, il doit accepter le message Pour la livraison sans authentification puisqu'il s'agit d'un utilisateur local. Ce n'est pas facile à faire depuis que system.net ne fournit pas de classe DNS gérée capable de retourner des enregistrements MX mais que vous pouvez p / invoquer le code non géré pour le faire. Sinon, vous devez vous assurer que quel que soit le serveur SMTP que vous connectez à vous relais, puis définissez la propriété Critings de SMTPClient sur les informations d'identification appropriées pour connecter ce serveur. Réglage de la méthode de livraison sur PickupDirectoryFromiis n'écrit toujours qu'un fichier dans le répertoire de prise d'accès IIS, il ne s'agit que d'un fichier réel.


1 commentaires

+1 pour savoir comment fonctionne un email. N'oubliez pas non plus que vous devrez peut-être avoir d'autres choses que vous devrez simplement envoyer directement au serveur pour ce domaine (recherche MX). La plupart du temps en raison de la protection anti-spam, il existe de nombreuses règles dans le monde du courrier électronique. Recherche sur "Sender ID", "SPF" et "En-tête SMTP Sender" pour vous aider à démarrer - pour que quiconque cherche à aller à cet itinéraire.



6
votes

J'ai eu ce problème et l'authentification corrigée, voir ci-dessous:

SmtpClient client = new SmtpClient(EmailServer, 25);
var SmtpUser = new System.Net.NetworkCredential("domain\\username", "password");
client.Credentials = SmtpUser;
client.DeliveryMethod = SmtpDeliveryMethod.Network;


0 commentaires

0
votes

J'ai fait face à ce problème, que j'ai résolu par ajout d'un domaine avec "* .com" en tant que nom de domaine et type que "distant", sous IIS 6.0 Manager / SMTP serveur virtuel / domaines.

Bien que dans mon cas, le serveur SMTP a permis d'accéder anonyme.


0 commentaires