C# 通过SSL设置发送电子邮件

C# 通过SSL设置发送电子邮件,c#,.net,ssl,C#,.net,Ssl,如果我发送邮件时没有启用SSL,我可以使用以下代码发送电子邮件。启用SSL时,我必须更改凭据,例如端口和传出服务器。我已经多次检查了凭据,它们都是正确的,并且还与我的托管公司确认了凭据。我是否错过了阻止我通过SSL发送邮件的任何步骤。请指教,谢谢 //Sending without SSL which works public static string error; public static void Send() { try { MailMessage ma

如果我发送邮件时没有启用SSL,我可以使用以下代码发送电子邮件。启用SSL时,我必须更改凭据,例如端口和传出服务器。我已经多次检查了凭据,它们都是正确的,并且还与我的托管公司确认了凭据。我是否错过了阻止我通过SSL发送邮件的任何步骤。请指教,谢谢

//Sending without SSL which works
public static string error;
public static void Send()
{
    try
    {
        MailMessage mail = new MailMessage(); 
        SmtpClient SmtpServer = new SmtpClient("mail.mywebsite.com"); 

        mail.From = new MailAddress("management@mywebsite.com");
        mail.To.Add("report@mywebsite.com");

        mail.Subject = "Inventory Status/ Update";
        mail.Body = Connection.emailUpdate;

        SmtpServer.Port = 26;
        SmtpServer.Credentials = new System.Net.NetworkCredential("management@mywebsite.com", "password");
                SmtpServer.EnableSsl = false;

        SmtpServer.Send(mail);
        SmtpServer.Timeout = 10000;
        MessageBox.Show("mail Send");
    }
    catch (Exception ex)
    {
        error = ex.ToString();
    }
}

//Sending with SSL which fails
public static string error;
public static void Send()
{
    try
    {
        MailMessage mail = new MailMessage(); 
        SmtpClient SmtpServer = new SmtpClient("eu2.01domain.net");//Change in outgoing server 

        mail.From = new MailAddress("management@mywebsite.com");
        mail.To.Add("report@mywebsite.com");

        mail.Subject = "Inventory Status/ Update";
        mail.Body = Connection.emailUpdate;

        SmtpServer.Port = 465; //Change in port
        SmtpServer.Credentials = new System.Net.NetworkCredential("management@mywebsite.com", "password");
        SmtpServer.EnableSsl = true; //SSL enabled

        SmtpServer.Send(mail);
        SmtpServer.Timeout = 10000;
        MessageBox.Show("mail Send");
    }
    catch (Exception ex)
    {
        error = ex.ToString();
    }
}

同时发布异常详细信息排除/隐藏敏感信息引发了什么异常?事件查看器是否显示任何内容?此外,您不需要在异常变量上使用.ToString,因为它已经是字符串格式。没有异常。屏幕冻结,直到我停止这个过程。当我停止进程时,我得到的只是一条消息,表明线程已停止。我尝试在启用SSL的情况下将端口交换到26,然后它就可以工作了。但这不是SSL的推荐端口。根据主机公司的说法,应该使用465。这可能是您的防火墙设置吗?您的事件查看器是否在应用程序、安全或系统视图下显示任何内容?暂时禁用防火墙,但结果仍然相同。