Я разрабатываю приложение ASP.NET с использованием веб-форм, и я наткнулся на (я думаю, тривиальную) проблему отправки электронной почты с Microsoft Exchange Учетная запись сервера.Не удается отправить электронное письмо получателям за пределами локальной сети на сервере Exchange с помощью ASP.net
Я использую класс ExchangeService (с API Microsoft EWS) и функцию AutodiscoverUrl для подключения к серверу Exchange.
Это мой код:
protected void Button2_Click(object sender, EventArgs e)
{
string from = "[email protected]";
string to = "[email protected]";
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.AutodiscoverUrl(from);
EmailMessage message = new EmailMessage(service);
message.Subject = "Email Subject";
message.Body = TextBoxMessage.Text;
message.ToRecipients.Add(to);
message.Save();
message.SendAndSaveCopy();
}
Проблема заключается в том, что я могу только отправлять письма местных адресов электронной почты, т.е. от и до сервера Exchange (только адреса из моей компании). Отправка на «внешние» электронные письма, такие как gmail, не работает, хотя вызов SendAndSaveCopy не вызывает никаких исключений.
Следует отметить, что это работает только с моего сервера разработки внутри локальной сети компании. Если я отключусь от локальной сети, я больше не могу подключиться к серверу Exchange, и возникает исключение.
Что я делаю неправильно?
Убедитесь, что сервер обмена настроен для ретрансляции с ip-адреса, на котором запущено приложение/веб-сайт. Раньше я сталкивался с этой проблемой, и это, как правило, было проблемой. – Brian
Кроме того, вы можете проверить журналы сервера Exchange. –
Скорее всего, это не проблема с вашим кодом, а скорее с конфигурацией сервера Exchange. Большинство магазинов с хорошими администраторами устанавливают ограничения на то, какие приложения и какие машины могут отправлять электронные письма, и может даже быть какая-то сторонняя система, блокирующая почту, когда они выходят из вашей сети. Это хорошая практика с точки зрения безопасности, поскольку она ограничивает ущерб, который может быть нанесен, если вредоносная программа действительно установлена в сети и начинает пытаться отправлять электронные письма. Короче говоря, у вас, вероятно, есть проблемы из-за хорошей безопасности и нужно поговорить с администратором. – David