Я работаю над проектом, в котором одним из требований является перезаписать приложение ASP.NET. Старое приложение ASP.NET основано на .NET Framework 1.1. Новое приложение ASP.NET основано на .NET Framework 3.5.ASP.NET - SmtpClient - Не удается подключиться к удаленному серверу
Одной из функций старого веб-приложения была возможность отправки электронной почты. В старом коде используется класс System.Web.Mail.SmtpMail
, тогда как новое веб-приложение использует класс System.Net.Mail.SmtpClient
.
При тестировании этого на наших серверах разработки все работало нормально. Тем не менее, у нас есть два бета-клиента, тестирующих наше программное обеспечение, и они сталкиваются с проблемами отправки электронной почты в новом веб-приложении.
Конкретное исключение состоит в следующем:
Невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: Подключение не может быть сделано, потому что целевая машина активно отказалась его
Оба старого и нового приложения ASP.NET находятся на одном сервере (Windows Server 2003). Они оба используют один и тот же почтовый сервер Exchange. Почему старое приложение ASP.NET может успешно отправлять электронную почту, но новый не может?
Я просмотрел старый код и не использовал какую-либо форму аутентификации, он просто указал адрес электронной почты отправителя, адрес электронной почты получателя, тему, тело и сервер и отправил сообщение. Я сделал то же самое в новом коде, с той лишь разницей, что я использовал класс SmtpClient.
Ниже приведен фрагмент кода из нового приложения ASP.NET:
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(messageTo);
mail.From = new MailAddress(messageFrom);
mail.Subject = messageSubject;
mail.Body = messageBody;
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Send(mail);
Есть ли что-либо в журналах Exchange, которые показывают, что он отказывается от соединения? – David
У меня нет доступа к ним, и я не думаю, что бета-клиент также сможет получить к ним доступ. Опять же, это сработало хорошо на нашей стороне. Это довольно простая функциональность. – Chris
Как вы указываете сервер? в конструкторе SmptClient или в web.config? можете ли вы опубликовать код? – onof