日期:2014-05-17  浏览次数:20405 次

急啊!!!!布置服务器后,发送邮件失败,求大侠指教哈,服务器是server 2008
C# code


            string fromAddress = "***@gmail.com";

            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            msg.To.Add(targetAddress);
            msg.From = new System.Net.Mail.MailAddress(fromAddress,"***");
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
            msg.Subject = title;//邮件标题 
            msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
            msg.Body = content;//邮件内容 
            msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
            msg.IsBodyHtml = true;//是否是HTML邮件 
            msg.Priority = System.Net.Mail.MailPriority.High;//邮件优先级 
            System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
            client.Credentials = new System.Net.NetworkCredential(fromAddress, "***");
            //上述写你的GMail邮箱和密码 
            client.Port = 587;//Gmail使用的端口 
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true;//经过ssl加密 
            object userState = msg;
            client.SendAsync(msg, userState);



以上是我发邮件的代码

在本地是可以成功的,测了N次,发到服务器上时,就发送不了,无任何异常信息,求大侠指教下哈,急

------解决方案--------------------
你的服务器是独立服务器吗?带硬件防火墙吗?如果有硬件防火墙,应该把smtp端口打开,一般防火墙只默认打开的smtp端口是25,经过ssl加密的端口是关闭的。另外跟你的服务器提供商也有关系,有些服务器提供商只允许使用他们自己的smtp服务器转发,使用自己的smtp是不能发送的(比如godaddy的空间和服务器)
------解决方案--------------------
关闭防火墙设置Smtp的2个端口号
Smtp无法夸防火墙,而且Smtp协议是根据网站邮箱版本来定
2000年以前基本都是Smtp协议