“Une tentative d'accès à un support d'une manière interdite par ses autorisations d'accès” tout en utilisant le protocole SMTP
Je suis en train d'envoyer un e-mail SMTP lorsque certaines valeurs dans la base de données de la traverse sur toute sa valeur de seuil.
J'ai déjà autorisé les ports 25 587 personnes et 465 dans le pare-feu Windows désactivé l'option de prévention de la masse de courrier dans l'Antivirus. Le code que j'utilise est donnée ci-dessous
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("[email protected]");
//From
MailAddress mailAddress = new MailAddress("[email protected]");
mailMsg.From = mailAddress;
//Subject and Body
mailMsg.Subject = "MCAS Alert";
mailMsg.Body = "Parameter out of range";
SmtpClient smtpClient = new SmtpClient("smtp.servername.com", 25);
smtpClient.UseDefaultCredentials = false;
smtpClient.Timeout = 30000;
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential("username", "passwrod");
smtpClient.Credentials = credentials;
smtpClient.EnableSsl = true;
//ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
smtpClient.Send(mailMsg);
Trace De La Pile
[SocketException (0x271d): An attempt was made to access a socket in a way forbidden by its access permissions xx.xx.xx.xx:25]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +208
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +464
[WebException: Unable to connect to the remote server]
System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6) +6486360
System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback) +307
System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) +19
System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) +324
System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) +141
System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) +170
System.Net.Mail.SmtpClient.GetConnection() +44
System.Net.Mail.SmtpClient.Send(MailMessage message) +1554
[SmtpException: Failure sending mail.]
System.Net.Mail.SmtpClient.Send(MailMessage message) +1906
Admin_Alert.SMTPAuth() in c:\Users\spandya\Documents\Visual Studio 2012\WebSites\WebSite3\Admin\Alert.aspx.cs:61
Admin_Alert.Page_Load(Object sender, EventArgs e) in c:\Users\spandya\Documents\Visual Studio 2012\WebSites\WebSite3\Admin\Alert.aspx.cs:22
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
Ce que je suis en manque ici? Pare-feu entrant règles sont là pour ces adresses de port.
- l'erreur est-elle à venir à partir de l'envoi de la machine ou de la réception de l'un?
- De vérifier la modifier pour la Trace de la Pile
- Avez-vous essayé l'utilitaire Telnet vers ce port de la machine en question pour s'assurer que la voie est ouverte? Quelque chose comme
telnet smtp.mydomain.com 25
- Principalement
SocketException (0x271d)
est levée pour le port bloc, donc vous pouvez le vérifiernetstat -anb | find "25"
sur ce serveur outelnet smtp.servername.com 25
de la télécommande pour vérifier si ce port est ouvert sur votre serveur smtp? - J'ai essayé telnet, mais il a dit ne pouvait pas se connecter à l'hôte sur le port 25
- essayé telnet, mais il a dit ne pouvait pas se connecter à l'hôte sur le port 25". Ne vous inquiétez pas au sujet de votre code jusqu'à ce que vous pouvez créer un socket avec telnet vers le serveur de messagerie sur le port 25.
- Essayez de télécharger gratuitement un scanner de port et de voir si vous pouvez voir des ports ouverts sur le serveur de messagerie à partir du web. Le Port 25 est la norme, mais pas nécessaire. Surtout si c'est un serveur privé où les administrateurs sont essayant d'éviter d'être un relais de la cible.
- Avez-vous épeler votre mot de passe correctement?
- ce serveur de messagerie utilisez-vous? Une 3ème partie comme GMAIL, c'est pour un serveur Microsoft Exchange,sendmail/postfix serveur? Ou êtes-vous essayer de pousser mail à partir de votre ordinateur local sans l'aide d'un serveur de messagerie?
- pourquoi êtes-vous en utilisant le PORT 25 lorsque vous avez SSL ? Le Port 25 œuvres à des fins non ssl e-mails, si votre Serveur SMTP nécessite SSL ensuite, généralement, c'est le port 587 ou 465,essayer avec le port et je suis sûr que votre courriel sera acheminé à travers.
Vous devez vous connecter pour publier un commentaire.
Ok, donc très important de comprendre les implications.
Docs disent que plus de 465 SSL n'est PAS pris en charge dans SmtpClient.
Semble que vous n'avez pas d'autre choix que d'utiliser STARTTLS qui ne peuvent pas être pris en charge par votre serveur de courrier. Vous pourriez avoir à utiliser un autre bibliothèque si votre hôte nécessite l'utilisation de SSL sur 465.
Cité de http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl(v=vs. 110).aspx
De la classe SmtpClient prend uniquement en charge l'Extension de Service SMTP pour SMTP Sécurisé sur la Sécurité de Couche Transport comme défini dans la RFC 3207. Dans ce mode, la session SMTP commence sur un canal non crypté, puis une commande STARTTLS est émis par le client au serveur de passer à la communication sécurisée via le protocole SSL. Voir la RFC 3207 publié par l'Internet Engineering Task Force (IETF) pour plus d'informations.
Une autre méthode de connexion est l'endroit où une session SSL est établie avant tout protocole commandes sont envoyées. Cette méthode de connexion est parfois appelé SMTP/SSL, SMTP sur SSL, ou SMTPS et utilise par défaut le port 465. Cette autre méthode de connexion à l'aide de SSL n'est pas actuellement pris en charge.
Veuillez confirmer que votre pare-feu autorise le trafic sortant et que vous n'êtes pas bloqué par un logiciel antivirus.
J'ai reçu le même problème et que le coupable était un logiciel antivirus.
J'ai eu cette erreur:
lorsque le port est utilisé par un autre programme.
Le Pare-feu Windows a été la création de cette erreur pour moi. SMTP a été essayez de poster votre compte GMAIL port 587. L'ajout du port 587 à la règle de sortie [Sortante HTTP/SMTP/RDP] a résolu le problème.
J'ai eu un problème identique. Il a été fonctionne correctement sur la machine locale, mais il a eu des problèmes sur le serveur. J'ai changé les paramètres SMTP. Il fonctionne très bien pour moi.
Si vous êtes à l'aide de GoDaddy Hébergement Plesk control panel, utiliser le SMTP de détails.