Как отправить электронную почту через сервер обмена без использования smtp?
Я пытаюсь отправить электронное письмо с кодом С# через наш сервер обмена нашей компанией.
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("exchangebox1.mycompany.com");
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage("[email protected]",
"[email protected]",
"title here",
"body here");
client.Send(msg);
Когда я запускаю это, я получаю SmptException, говорящий "Сервис недоступен, закрывая канал передачи. Ответ сервера был 4.3.2. Сервис недоступен, закрывая канал передачи".
Я интерпретирую это так, чтобы SMTP не был включен в нашем поле обмена и что мне нужно использовать собственные команды сервера Exchange для отправки почты. Это правильно или SMTP всегда работает?
Кроме того, возможно ли, что сервер обмена мог быть настроен только для того, чтобы разрешить определенным компьютерам/пользователям отправлять главную информацию через SMTP?
Как отправить почту через Exchange Server без использования SMTP?
Спасибо.
Ответы
Ответ 1
Вы можете использовать WCF Exchange Server Mail Transport
пример реализации Здесь
В частности, в отношении отправки сообщений говорится:
Когда приложение отправляет сообщение, он вызывает метод отправки на текущий выходной канал, который должен быть открытый. Серийный канал вывода сообщение в строку и создает сообщение в папке "Черновики". Это устанавливает соответствующие значения в поля электронной почты. Когда сообщение был создан, он перемещен в Исходящие. Это происходит через CEMAPI on устройства или через Exchange Web Услуги на рабочем столе. На устройства, сообщения в папке "Исходящие" синхронизированы с другими исходящими сообщений, как определено ActiveSync.
Ответ 2
Вы можете использовать новый управляемый API Exchange Web Services 1.0. это лучшее решение.
heres link.
http://msdn.microsoft.com/en-us/library/dd637749(v=exchg.80).aspx
https://blogs.technet.com/b/exchange/archive/2009/04/21/3407328.aspx
Прием также будет принимать списки рассылки.
Версия 2.0 API
http://msdn.microsoft.com/en-us/library/office/dd633709.aspx
Ответ 3
Попробуйте добавить эти две строки перед отправкой:
client.UseDefaultCredentials = true;
client.EnableSsl = true;
Это, скорее всего, проблема с отсутствием учетных данных, поэтому я немного обманываю от Google...
От dailycode.net
Ответ 4
Я знаю, что это старый поток, но для полноты вам следует рассмотреть пакет Microsoft Exchange WebServices:
https://www.nuget.org/packages/Microsoft.Exchange.WebServices
ExchangeService service = new ExchangeService();
service.AutodiscoverUrl("[email protected]");
EmailMessage message = new EmailMessage(service);
message.Subject = "my subject";
message.Body = "my body";
message.ToRecipients.Add("[email protected]");
message.Save();
message.SendAndSaveCopy();