公司的邮件服务器是SSL的,端口号465 用Outlook能发,用SmtpClient就不行,提示“操作已超时” 
126,gmail的邮箱都可以发 
gmail端口用465也不行,但是用587就可以
郁闷了,不知道怎么解决了代码:MailMessage msg = new MailMessage(fromMail,toMail,subject,body);
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new NetworkCredential(UserName, Password);
smtp.Port = Port;
smtp.Host = ServerName;
smtp.EnableSsl = true;
smtp.Send(msg);

解决方案 »

  1.   

    有没有和我碰到同样的问题,
    带SSL的除了gmail能用SmtpClient发邮件吗???
      

  2.   

    谢谢楼上
    客户的发件服务器用587也不行,
    也试过用默认的端口25,EnableSsl=false 都不行
      

  3.   

    楼上的怎么用if?
    我现在是要用公司的邮件服务器发,不是gmail的
      

  4.   

                System.Net.Mail.SmtpClient mail = new System.Net.Mail.SmtpClient("post");
                mail.UseDefaultCredentials = false;
                mail.Credentials = new System.Net.NetworkCredential("[email protected]", "passworcd");
                //mail.Credentials = new System.Net.NetworkCredential();
                mail.Timeout = 20000;
                mail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;            System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                //發件人電子郵件
                System.Net.Mail.MailAddress senderAddress = new System.Net.Mail.MailAddress(txtFromAddress.Value, txtFromName.Value);
                //收件人電子郵件
                System.Net.Mail.MailAddress addresseeAddress = new System.Net.Mail.MailAddress(txtToAddress.Value, txtToName.Value);            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(senderAddress, addresseeAddress);
                
                message.IsBodyHtml = true;
                
                message.Body = "<a>測試啦!!</a>";
                message.Subject = "測試啦!!";            message.SubjectEncoding = encoding;
                message.BodyEncoding = encoding;
               
                try
                {
                    mail.Send(message); 
                }
                catch
                {
                    
                }
      

  5.   

    谢谢(haibozhou1)
    但是我要的是带SSL的(除了Gmail)
      

  6.   

    smtp.UseDefaultCredentials = true;
      

  7.   


    用 System.Web.Mail.SmtpMail都可以发,没道理System.Net.Mail。SmtpClient不能发啊
     public bool TestSendMail()
            {
                System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
                try
                {
                    mail.To = txtEmailAddress.Text;
                    mail.From = UserName;
                    mail.Subject = "subject";
                    mail.BodyFormat = System.Web.Mail.MailFormat.Html;
                    mail.Body = "body";
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", UserName); //set your username here
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", Password); //set your password here
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", Port);//set port
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//set is ssl               
                    System.Web.Mail.SmtpMail.SmtpServer = ServerName;
                    System.Web.Mail.SmtpMail.Send(mail);
                    return true;
                }
                catch (Exception ex)
                {
                    ex.ToString();
                }
                return false;
            }
      

  8.   

    哥们你解决了吗 我也这个问题 net类的Mail可以发,  web类的mail不能发