10
votes

Dépannage "Boîte aux lettres indisponible. La réponse du serveur était: Accès refusé - Nom d'Helo non valide" lors de l'envoi de courrier électronique avec SmtpClient

J'ai essayé d'envoyer un email par c #. J'ai googlé pour divers exemples et j'ai pris des morceaux de chacun de chacun et du code standard que tout le monde utiliserait probablement. XXX

Cependant, je continue à obtenir une erreur indiquant

system.net.mail.smtpException: boîte aux lettres indisponible. La réponse du serveur était: Accès refusé - Nom d'Helo non valide (voir RFC2821 4.1.1.1)

Alors, que dois-je faire maintenant? SMTPClient est-il censé être spécial et fonctionner uniquement sur des serveurs SMTP spécifiques?


2 commentaires

On dirait que tout serveur que vous essayez de vous connecter nécessite que votre client s'identifie ...


Est-ce une faute de frappe? string to = récepteur@domain.com;


6 Réponses :


8
votes

Il semble Votre paire de nom d'utilisateur / mot de passe n'est pas authentifiant avec succès avec votre serveur SMTP.

Edit

Je pense, j'ai trouvé ce qui ne va pas ici. J'ai corrigé votre version ci-dessous. xxx


5 commentaires

Dans ce cas, il y a quelque chose qui ne va pas dans son code. Si son code ne fournit pas certaines informations, le code est "faux".


@Gertjan: Oui, je suis d'accord avec toi. Mise à jour de la réponse.


Merci! Cela résolu! Je ne savais pas que c'était des contextes étranges qui ont été configurés sur le côté SMTP.


@ user303907: Eh bien, le message peut sembler étrange, mais le client identifie avec la commande HELO sur le serveur, de sorte que si le serveur ne peut pas vous connecter, il peut vous donner un accès refusé (qui s'est passé) et certains pourraient vous informer où il s'est passé ( et c'était dans la partie HELO de la conversation).


Je suis confronté au même problème. Plus tôt, il travaillait mais maintenant le client se plaint de ce problème. Client a déclaré qu'ils n'avaient changé aucun cadre. Toute suggestion?



4
votes

Avez-vous essayé de définir vos informations d'identification d'authentification dans Web.config? XXX PRE>

et votre code derrière P>

MailMessage message = new MailMessage();
message.From = new MailAddress("sender@foo.bar.com");
message.To.Add(new MailAddress("recipient1@foo.bar.com"));
message.To.Add(new MailAddress("recipient2@foo.bar.com"));
message.To.Add(new MailAddress("recipient3@foo.bar.com"));
message.CC.Add(new MailAddress("carboncopy@foo.bar.com"));
message.Subject = "This is my subject";
message.Body = "This is the content";
SmtpClient client = new SmtpClient();
client.Send(message);


0 commentaires

3
votes

Essayez ceci:

string to = "receiver@domain.com";
string from = "sender@domain.com";
string subject = "Hello World!";
string body =  "Hello Body!";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient("smtp.domain.com");
// explicitly declare that you will be providing the credentials:
client.UseDefaultCredentials = false;
// drop the @domain stuff from your user name: (The API already knows the domain
// from the construction of the SmtpClient instance
client.Credentials = new NetworkCredential("test", "password");
client.Send(message);


0 commentaires

1
votes

Dans mon cas, c'était un mauvais port. La configuration fournie par l'hébergement n'a pas fonctionné à la fois SSL (465) et aucun SSL (25). J'ai utilisé MS Outlook pour "craquer" la configuration, puis copié à mon application. C'était 587 SSL.


0 commentaires

1
votes

Cela peut arriver si vous ne définissez pas Enayspessl.

client.EnableSsl = true;


1 commentaires

Cela a résolu mon problème. Dans la documentation, il y avait un port d'écrit 587 pour la connexion non-SSL, mais qui retournait une erreur Helo. Après avoir commuté SSL sur true, il a fonctionné :)



0
votes

Si vous avez un client WebMail disponible et que vous voyez un logo CPanel, il pourrait s'agir également d'un réglage.

 Entrez la description de l'image ici

Nous avons eu l'exception et avons demandé à notre société d'hébergement d'entrer dans:

"Root Whm> Configuration du service> Exim Configuration Manager> Editeur de base> Options ACL "

et définir le paramètre nécessite une configuration de RFC HELO sur OFF .

Cela a travaillé pour nous après avoir corrigé la prochaine erreur suivante:

Auth SMTP est requis pour la soumission de message sur le port 587

Source:

https://serverfault.com/a/912351/293367


0 commentaires