即使服务器不支持TLS,我希望我的应用程序使用“SMTP over SSL”发送电子邮件。 到目前为止我已经尝试了
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("abc@xyz.com");
mail.To.Add("to_address");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true; //true: sends using TLS, false: sends without security
SmtpServer.Send(mail);
MessageBox.Show("Mail sent");
}
catch (Exception ex)
{
MessageBox.Show("Error" + ex.ToString());
}
通过设置名为EnableSsl的属性,我可以通过支持TLS的服务器发送邮件,但我无法通过仅支持SMTP over SSL的服务器发送邮件。 如何支持此SMTP / SSL方法?
答案 0 :(得分:0)
根据SMTPClient规范: https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl(v=vs.110).aspx
SmtpClient类仅支持RFC 3207中定义的基于传输层安全性的安全SMTP的SMTP服务扩展。在此模式下,SMTP会话从未加密的通道开始,然后STARTTLS命令是由客户端发布到服务器以切换到使用SSL的安全通信。有关详细信息,请参阅Internet工程任务组(IETF)发布的RFC 3207。
您可以尝试使用不推荐使用但支持SSL的System.Web.Mail.SmtpMail:
https://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail(v=vs.110).aspx
TBH我认为您应该对您的服务发出警告,并声明只支持使用TLS的SMTP服务器。但是在一天结束时,这取决于你。
答案 1 :(得分:0)
This link显示了另一种可以在Collaboration Data Objects component的帮助下使用SMTP over SSL发送电子邮件的方式。这种方式还支持将图像嵌入到电子邮件中。
答案 2 :(得分:-2)
请更改您的代码..
SmtpServer.EnableSsl = false;