Я использую этот код для отправки электронной почты через Outlook в приложении winforms.ExchangeService с AutodiscoverUrl отправки с неправильного адреса электронной почты
_exchangeService = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
_exchangeService.AutodiscoverUrl(_sender);
// ...
var email = new EmailMessage(_exchangeService)
{
Subject = mailMessage.Subject,
Body = mailMessage.Body
};
email.ToRecipients.AddRange(mailMessage.To.Select(x => x.Address));
email.SendAndSaveCopy();
я поставил точку останова на _exchangeService.AutodiscoverUrl(_sender);
и я могу видеть, что отправитель [email protected]. Тем не менее, письмо отправляется «От» фактического пользователя, зарегистрированного в приложении winforms. Например, [email protected].
Мы попытались настроить Active Directory на «Отправить как» и «Отправить по имени» для этого пользователя, чтобы разрешить отправку как [email protected], но это не помогло. Мы также рассмотрели журнал Exchange Server для этого электронного письма, и он явно отправляется «От» [email protected]
В примере кода https://msdn.microsoft.com/en-us/library/dd634273 они используют NetworkCredential
. Нужно ли мне это делать?
Почему отправитель (электронная почта отправляет с) неправильно?
почему бы вам не использовать 'PrincipalContext' вы можете получить по электронной почте пользователям, что путь пользователя входа в сеть. Введенная вами ссылка использует сетевые учетные данные, поэтому попробуйте использовать ее с использованием того же примера – MethodMan
@MethodMan Я хочу отправить электронное письмо ** из ** customerservice, а не с адреса электронной почты пользователя. – Jess
, то вы можете добавить запись в файл .config или можете переключить свой код, чтобы использовать smtp для отправки электронной почты .. если вам нужен рабочий пример того, что я могу опубликовать его для вас .. на самом деле я знаю, как вы могли бы получить он работает, но я не уверен, что это сделает трюк. Я отправлю ответ за секунду. – MethodMan