《使用SMTP时,尝试以禁止其访问的方式访问套接字》发送邮件c#时某些值在超过其阈值。我在Windows防火墙中允许端口25、587和465。并禁用防病毒软件中的选项以防止群发邮件。我正在使用System.Net使用的代码如下;使用System.Net.Mail;使用System.Net.Security;使用System.Security.Cryptography.X509Certificates;MailMessagemailMsg=newMailMessage();mailMsg.To.Add("to@domain.com");//来自MailAddressmailAddress=newMailAddress("from@domain.com");mailMsg.From=邮件地址;//主题和正文mailMsg.Subject="MCASAlert";mailMsg.Body="参数超出范围";SmtpClientsmtpClient=newSmtpClient("smtp.servername.com",25);smtpClient.UseDefaultCredentials=false;smtpClient.Timeout=30000;System.Net.NetworkCredentialcredentials=newSystem.Net.NetworkCredential("用户名","密码");smtpClient.Credentials=凭证;smtpClient.EnableSsl=true;//ServicePointManager.ServerCertificateValidationCallback=delegate(objects,X509Certificatecertificate,X509Chainchain,SslPolicyErrorssslPolicyErrors){returntrue;};smtpClient.Send(mailMsg);堆垛跟踪[SocketException(0x271d):已尝试以访问权限xx.xx.xx.xx:25禁止的方式访问套接字]System.Net.Sockets.Socket.DoConnect(EndPointendPointSnapshot,SocketAddresssocketAddress)+208System.Net.ServicePoint.ConnectSocketInternal(BooleanconnectFailure,Sockets4,Sockets6,Socket&socket,IPAddress&address,ConnectSocketStatestate,IAsyncResultasyncResult,Exception&exception)+464[WebException:无法连接到远程服务器]System.Net.ServicePoint.GetConnection(PooledStreamPooledStream,Objectowner,Booleanasync,IPAddress&地址,Socket&abortSocket,Socket&abortSocket6)+6486360System.Net.PooledStream.Activate(ObjectowningObject,Booleanasync,GeneralAsyncDelegateasyncCallback)+307System.Net.PooledStream.Activate(ObjectowningObject,GeneralAsyncDelegateasyncCallback)+19System.Net.ConnectionPool.GetConnection(ObjectowningObject,GeneralAsyncDelegateasyncCallback,Int32creationTimeout)+324System.Net.Mail.SmtpConnection.GetConnection(ServicePoint服务点)+141System.Net.Mail.SmtpTransport.GetConnection(ServicePoint服务点)+170System.Net.Mail.SmtpClient.GetConnection()+44System.Net.Mail.SmtpClient.Send(MailMessage消息)+1554[SmtpException:发送邮件失败。]System.Net.Mail.SmtpClient.Send(MailMessage消息)+1906Admin_Alert.SMTPAuth()在c:UsersspandyaDocumentsVisualStudio2012WebSitesWebSite3AdminAlert.aspx.csert.csert:61Admin_Page_Load(Objectsender,EventArgse)inc:UsersspandyaDocumentsVisualStudio2012WebSitesWebSite3AdminAlert.aspx.cs:22System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Objectsender,EventArgse)+51System.Web.UI.Control.OnLoad(EventArgse)+92System.Web.UI.Control.LoadRecursive()+54System.Web.UI.Page.ProcessRequestMain(BooleanincludeStagesBeforeAsyncPoint,BooleanincludeStagesAfterAsyncPoint)+772我还缺少什么?防火墙入站规则适用于这些特定的端口地址好的,了解这里的含义非常重要。文档说SmtpClient不支持超过465的SSL。似乎您别无选择,只能使用您的邮件主机可能不支持的STARTTLS。如果您的主机需要使用超过465的SSL,您可能必须使用不同的库。引用自http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl(v=vs.110).aspx根据RFC3207中的定义,SmtpClient类只支持SecuritySMTP服务扩展。在这种模式下,SMTP会话在未加密的通道上启动,然后客户端向服务器发出STARTTLS命令以切换到使用SSL进行安全通信。有关详细信息,请参阅互联网工程任务组(IETF)发布的RFC3207。另一种连接方法是在发送任何协议命令之前预先建立SSL会话。这种连接方法有时称为SMTP/SSL、SMTPoverSSL或SMTPS,默认情况下使用端口465。当前不支持使用SSL的备用连接方法。请确认您的防火墙允许出站流量,并且您没有被防病毒软件阻止。我遇到了同样的问题,罪魁祸首是防病毒软件。Windows防火墙为我创建了这个错误。SMTP尝试在端口587上发布到GMAIL。将端口587添加到出站规则[OutboundHTTP/SMTP/RDP]解决了该问题。我收到此错误:System.Net.Sockets.SocketException:当另一个程序正在使用端口时,尝试以其访问权限禁止的方式访问套接字。我也有同样的问题。它在本地机器上工作正常,但在服务器上有问题。我更改了SMTP设置。这对我来说很好。如果您使用的是GoDaddyPlesk主机,请使用以下SMTP详细信息。以上就是C#学习教程分享的全部内容:《使用SMTP时,通过禁止socket的访问权限尝试访问socket》。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注—Host=relay-hosting.secureserver.net端口=25本文收集自网络,不代表正文位置。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
