我正在发送一封来自wpf应用程序的电子邮件。当作为域用户在网络上发送时,电子邮件将按预期发送。但是,当我尝试通过VPN连接发送电子邮件时,会出现以下异常:
例外:
system.net.mail.smtpexception:发送邮件失败。--->system.io.ioexception:无法从传输连接读取数据:网络IO连接已关闭。
位于system.net.mail.smtpreplyreaderfactory.processread(byte[]buffer,int32 offset,int32 read,boolean readline)
在system.net.mail.smtpreplyreaderfactory.readlines(smtpreplyreader调用方,布尔单行)
在system.net.mail.smtpreplyreaderfactory.readline(smtpreplyreader调用方)
在system.net.mail.smtpconnection.getconnection(字符串主机,Int32端口)
在system.net.mail.smtptransport.getconnection(字符串主机,Int32端口)
位于system.net.mail.smtpclient.getconnection()
在system.net.mail.smtpclient.send(邮件消息)
我尝试使用模拟以及在smtpclient上设置凭据。两者似乎都不起作用:
using (new ImpersonateUser("myUser", "MYDOMAIN", "myPass"))
{
var client = new SmtpClient("myhost.com");
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("myUser", "myPass", "MYDOMAIN");
client.Send(mailMessage);
}
我也试过使用wireshark通过网络查看邮件,但是我对smtp的了解还不够,不知道我在找什么。
另一个变量是我在vpn上使用的机器是vista business,网络上的机器是win7。我不认为这是相关的,但我不会问我是否知道这个问题!:)
有什么主意吗?