- 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协议