Отправка электронной почты через VPN SmtpException net_io_connectionclosed
Я отправляю письмо из приложения WPF. При отправке в качестве пользователя домена в сети, электронные письма отправляются как ожидалось. Однако, когда я пытаюсь отправить электронную почту через VPN-соединение, я получаю следующее исключение:
Исключение:
System.Net.Mail.SmtpException: сбой отправки почты. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed. в System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(буфер Byte[], смещение Int32, чтение Int32, логическая линия чтения) в System.Net.Mail.SmtpReplyReaderFactory.ReadLines(вызывающий SmtpReplyReader, логическая строка) в System.Net.Rep.Reader.Reader.ReadLine(вызывающий SmtpReplyReader) в System.Net.Mail.SmtpConnection.GetConnection(хост String, порт Int32) в System.Net.Mail.SmtpTransport.GetConnection(хост String, порт Int32) в System.Net.Mail.SmtpClient.GetConnection() в System.Net.Mail.SmtpClient.Send(сообщение MailMessage)
Я попытался использовать олицетворение, а также установить учетные данные на 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. Я не думаю, что это связано, но тогда я бы не стал спрашивать, знаю ли я проблему!:)
Есть идеи?
1 ответ
Я решил это, подключив Outlook на машине VPN к серверу Exchange. IP-адрес автоматически преобразуется в имя сервера, отличное от того, которое я пробовал. Очевидно, что сервер обмена был доступен только через VPN через другой URL.