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. Cependant, je continue à obtenir une erreur indiquant P> 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) P>
BlockQuote> Alors, que dois-je faire maintenant? SMTPClient est-il censé être spécial et fonctionner uniquement sur des serveurs SMTP spécifiques? P> P>
6 Réponses :
Il semble Votre paire de nom d'utilisateur / mot de passe n'est pas authentifiant fort> avec succès avec votre serveur SMTP. Je pense, j'ai trouvé ce qui ne va pas ici. J'ai corrigé votre version ci-dessous. p> Edit H2>
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?
Avez-vous essayé de définir vos informations d'identification d'authentification dans Web.config? 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);
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);
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. P>
Cela peut arriver si vous ne définissez pas Enayspessl.
client.EnableSsl = true;
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é :)
Si vous avez un client WebMail disponible et que vous voyez un logo CPanel, il pourrait s'agir également d'un réglage. P>
Nous avons eu l'exception et avons demandé à notre société d'hébergement d'entrer dans: p>
"Root Whm> Configuration du service> Exim Configuration Manager> Editeur de base> Options ACL " P>
et définir le paramètre Cela a travaillé pour nous après avoir corrigé la prochaine erreur suivante: p>
Auth SMTP est requis pour la soumission de message sur le port 587 p>
blockQuote>
Source: p>
nécessite une configuration de RFC HELO CODE> sur OFF CODE>. P>
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; code>