C# System.Web.Mail.SmtpMail发送SSL 465端口异常

C# System.Web.Mail.SmtpMail发送SSL 465端口异常,c#,system.web.mail,C#,System.web.mail,我使用System.Web.Mail类发送邮件,因为System.Net.Mail不支持隐式SSL。 我的代码是下一个: System.Web.Mail.MailMessage email = new System.Web.Mail.MailMessage(); string SEND_USING = "http://schemas.microsoft.com/cdo/configuration/sendusing"; string SMTP_SERVER = "http://schem

我使用System.Web.Mail类发送邮件,因为System.Net.Mail不支持隐式SSL。 我的代码是下一个:

 System.Web.Mail.MailMessage email = new System.Web.Mail.MailMessage();

 string SEND_USING = "http://schemas.microsoft.com/cdo/configuration/sendusing";
 string SMTP_SERVER = "http://schemas.microsoft.com/cdo/configuration/smtpserver";
 string SMTP_SERVER_PORT ="http://schemas.microsoft.com/cdo/configuration/smtpserverport";
 string SMTP_USE_SSL = "http://schemas.microsoft.com/cdo/configuration/smtpusessl";
 string SMTP_AUTHENTICATE = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate";
 string SEND_USERNAME = "http://schemas.microsoft.com/cdo/configuration/sendusername";
 string SEND_PASSWORD = "http://schemas.microsoft.com/cdo/configuration/sendpassword";

 email.Fields[SEND_USING] = 2;
 email.Fields[SMTP_SERVER] = Conf_SmtpServer;    //is valid
 email.Fields[SMTP_SERVER_PORT] = Conf_Port;     //465
 email.Fields[SMTP_USE_SSL] = Conf_SmtpSsl;      //true
 email.Fields[SMTP_AUTHENTICATE] = 1;
 email.Fields[SEND_USERNAME] = Conf_EmailAddress;
 email.Fields[SEND_PASSWORD] = Conf_PassWord;


 email.From = Conf_FeladoEmailNev + "<" + Conf_DisplayName + ">";
 email.To = System.Convert.ToString(dr["EMAIL"]);

 email.Subject = System.Convert.ToString(dr["TARGY"]);
 email.BodyFormat = System.Web.Mail.MailFormat.Text;
 email.Body = System.Convert.ToString(dr["TEXT"]);

 System.Web.Mail.SmtpMail.Send(email);
System.Web.Mail.MailMessage email=new System.Web.Mail.MailMessage();
字符串SEND_USING=”http://schemas.microsoft.com/cdo/configuration/sendusing";
字符串SMTP_服务器=”http://schemas.microsoft.com/cdo/configuration/smtpserver";
字符串SMTP_服务器_端口=”http://schemas.microsoft.com/cdo/configuration/smtpserverport";
字符串SMTP\U USE\U SSL=”http://schemas.microsoft.com/cdo/configuration/smtpusessl";
字符串SMTP_身份验证=”http://schemas.microsoft.com/cdo/configuration/smtpauthenticate";
字符串发送\u用户名=”http://schemas.microsoft.com/cdo/configuration/sendusername";
字符串发送密码=”http://schemas.microsoft.com/cdo/configuration/sendpassword";
email.Fields[SEND_USING]=2;
email.Fields[SMTP_SERVER]=Conf_SmtpServer//有效
email.Fields[SMTP_服务器_端口]=Conf_端口//465
email.Fields[SMTP_USE_SSL]=Conf_SmtpSsl//符合事实的
email.Fields[SMTP_AUTHENTICATE]=1;
email.Fields[SEND_USERNAME]=Conf_EmailAddress;
email.Fields[SEND_PASSWORD]=Conf_PASSWORD;
email.From=Conf_FeladoEmailNev+“”;
email.To=System.Convert.ToString(dr[“email”]);
email.Subject=System.Convert.ToString(dr[“target”]);
email.BodyFormat=System.Web.Mail.MailFormat.Text;
email.Body=System.Convert.ToString(dr[“TEXT”]);
System.Web.Mail.SmtpMail.Send(电子邮件);
运行SmtpMail.Send方法时,出现以下异常:

System.Web.HttpException(0x80004005):传输无法连接
到服务器。-->System.Reflection.TargetInvocationException:
调用的目标已引发异常。-->
System.Runtime.InteropServices.COMException:传输失败
连接到服务器

---内部异常堆栈跟踪的结束---at
System.RuntimeType.InvokeDispMethod(字符串名称,BindingFlags
invokeAttr,对象目标,对象[]参数,布尔[]byrefModifiers,
Int32区域性,字符串[]namedParameters)位于
System.RuntimeType.InvokeMember(字符串名称,BindingFlags
bindingFlags、Binder Binder、对象目标、对象[]提供的参数,
ParameterModifier[]修饰符,CultureInfo区域性,字符串[]
名称参数)位于
System.Web.Mail.SmtpMail.LateBoundAccessHelper.CallMethod(对象obj,
字符串methodName,对象[]args)位于
System.Web.Mail.SmtpMail.LateBoundAccessHelper.CallMethod(对象obj,
字符串methodName,对象[]args)位于
System.Web.Mail.SmtpMail.CdoSysHelper.Send(MailMessage)在
System.Web.Mail.SmtpMail.Send(MailMessage)


我试图找到一个解决方案,例如,这可能是防火墙/网关上的权限问题,但正确的人已经检查过了,所以没问题。

正确的人应该能够检查邮件服务器日志和文件墙,以查看失败的内容。如果可能,也可以尝试在不使用SSL/465的情况下进行发送,以消除其他原因。您是否尝试通过谷歌搜索其他工作示例,了解如何在
Stackoverflow
| | | |好的,我将检查日志。Dj Kraze如果我是对的,我认为这个解决方案只有一个区别:System.Web.Mail.SmtpMail.SmtpServer=“smtp.gmail.com:465”;这是否相关?我只在mail.fields中添加了smtp服务器和端口。我有新信息。邮件服务器链中有一个3证书。也许这就是问题所在?你能发送测试邮件吗?只需在SMTP文件夹中放置一个eml文件,然后测试所有设置是否正常。