带有SSL的邮件服务器 SmtpClient发送邮件 发送失败

mib23 2009-03-09 01:53:02
公司的邮件服务器是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);
...全文
1534 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaa63666159 2009-11-11
  • 打赏
  • 举报
回复
哥们你解决了吗 我也这个问题 net类的Mail可以发, web类的mail不能发
mib23 2009-03-10
  • 打赏
  • 举报
回复

用 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;
}
mib23 2009-03-09
  • 打赏
  • 举报
回复
晚上一顶
mib23 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 herojams 的回复:]
smtp.UseDefaultCredentials = true;
[/Quote]

试了,还是不行。
谢谢
_see_you_again_ 2009-03-09
  • 打赏
  • 举报
回复
smtp.UseDefaultCredentials = true;
mib23 2009-03-09
  • 打赏
  • 举报
回复
谢谢(haibozhou1)
但是我要的是带SSL的(除了Gmail)
haibozhou1 2009-03-09
  • 打赏
  • 举报
回复
System.Net.Mail.SmtpClient mail = new System.Net.Mail.SmtpClient("post");
mail.UseDefaultCredentials = false;
mail.Credentials = new System.Net.NetworkCredential("user_name@163.com", "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
{

}
mib23 2009-03-09
  • 打赏
  • 举报
回复
楼上的怎么用if?
我现在是要用公司的邮件服务器发,不是gmail的
lxwin01 2009-03-09
  • 打赏
  • 举报
回复
能不能回答的有点水平!
zzxap 2009-03-09
  • 打赏
  • 举报
回复
用一个if语句根据条件指定端口不就行了?
mib23 2009-03-09
  • 打赏
  • 举报
回复
谢谢楼上
客户的发件服务器用587也不行,
也试过用默认的端口25,EnableSsl=false 都不行
zlb789 2009-03-09
  • 打赏
  • 举报
回复
587用这个端口发就可以

估计是直接这样发 发件服务器做了些什么限制
mib23 2009-03-09
  • 打赏
  • 举报
回复
有没有和我碰到同样的问题,
带SSL的除了gmail能用SmtpClient发邮件吗???

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧