asp.net 发送邮件 本地ok,服务器总失败

gonguui1982 2014-04-29 10:28:58
我用sysytem.net类发送邮件。
用我的163邮箱发送到我的qq邮箱做测试。

结果是在我本地测试可以,但是放到服务器上就报错,我本地并没有装smtp虚拟服务,服务器上装了,但是我DeliveryMethod 用的是 SmtpDeliveryMethod.Network的方法啊,应该没问题啊。
本来怀疑是不是服务器防火墙或者公司防火墙或者路由把端口给封了,于是就在服务器那台机器上装了个foxmail,用我163的游邮箱给我qq邮箱发送测试邮件,没有任何问题。这我就头大了,现请教各路神仙该如何解决这个问题呢。


ps:报错如下
System.Net.Mail.SmtpException: 发送邮件失败。 ---> System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。 在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 在 System.Net.DelegatedStream.Read(Byte[] buffer, Int32 offset, Int32 count) 在 System.Net.BufferedReadStream.Read(Byte[] buffer, Int32 offset, Int32 count) 在 System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine) 在 System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller) 在 System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) 在 System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) 在 System.Net.Mail.SmtpClient.GetConnection() 在 System.Net.Mail.SmtpClient.Send(MailMessage message) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.Mail.SmtpClient.Send(MailMessage message) 在 WebCSC._Default.SendEmail2(String str)
...全文
563 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lr936428775 2015-05-06
  • 打赏
  • 举报
回复
我也遇到了,怎么解决?
shuxueyangli 2014-05-05
  • 打赏
  • 举报
回复
我本地没装smtp ,发送成功。但是服务器没装smtp也发不成功。现在装了还是发不成功
gonguui1982 2014-04-29
  • 打赏
  • 举报
回复
引用 5 楼 insus 的回复:
try this: http://www.cnblogs.com/insus/p/3474472.html or: http://www.cnblogs.com/insus/articles/1689279.html
其实我在纠结是不是smtp虚拟服务的问题,服务器上有,我本地没装。
gonguui1982 2014-04-29
  • 打赏
  • 举报
回复
引用 3 楼 insus 的回复:
发送邮件只是html邮件? 还是有附件? 猜你的情况,多数是后者: 在邮件发送代码,添加下面代码来试试:

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
。。。。。。。这个我上边不是写了吗,我用的就是这个方法,目前没有附件。
insus 2014-04-29
  • 打赏
  • 举报
回复
发送邮件只是html邮件? 还是有附件? 猜你的情况,多数是后者: 在邮件发送代码,添加下面代码来试试:

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
gonguui1982 2014-04-29
  • 打赏
  • 举报
回复
引用 1 楼 xuyue3000 的回复:
查看下服务器上的防火墙,或者杀毒软件,有没有拦截邮件发送的
服务器上没装第三方防火墙和杀软,系统自带防火墙也关闭了。
xuyue3000 2014-04-29
  • 打赏
  • 举报
回复
查看下服务器上的防火墙,或者杀毒软件,有没有拦截邮件发送的

62,242

社区成员

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

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

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

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