Мы думаем о переходе на O365; однако мы разработали программное обеспечение, которое использует наш текущий сервер Exchange для отправки электронной почты как внешним пользователям, так и в ящик поддержки при возникновении ошибок.
Я проверял это, чтобы убедиться, что код у нас на месте будет продолжать работать с O365, но пока что я не очень успешен.
Я пытался использовать SmtpClient Net, а также SmtpClient MailKit, и ни один из них, похоже, не работает. Я продолжаю получать сообщение об ошибке (это ошибка MailKit - ошибка Net похожа)
"AuthenticationInvalidCredentials: 5.7.3 Аутентификация не удалась [* .prod.exchangelabs.com]"
Я могу использовать учетные данные, которые есть в моем коде, для входа в OWA - поэтому я знаю, что учетные данные действительны. Разве нельзя отправить электронное письмо через O356? Есть ли какая-то особая конфигурация, которая должна произойти в Exchange, чтобы сделать это возможным?
Вот что я пробовал до сих пор:
MailKit
var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does. Have tried with and without
client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
client.Send(msg);
client.Disconnect(true);
}
Код. Net SmtpClient очень похож на код MailKit.
- Есть ли способ отправки через O365 с лицензированным пользователем? (код выше)
- Существуют ли какие-либо специальные настройки, необходимые в Exchange или для лицензированного пользователя, чтобы это работало? (Если ответ «1» - «да»)
- Можно ли отправлять электронную почту через общий почтовый ящик, для которого зарегистрированный пользователь имеет права «Отправить как»?
Обновление
Я все еще получаю то же сообщение об ошибке. Мы включили MFA для пользователей нашего домена. Однако у нас есть политика, которая не требует MFA для пользователей, когда они выполняют вход из надежного местоположения (IP-адрес нашей организации). Я также перечислил наш IP как доверенный. На мой взгляд, MFA не должен быть проблемой здесь.
Я знаю, что учетные данные верны. Я скопировал их из кода и вставил их на экран входа в систему при входе в M365 - и все получилось нормально.
Что я делаю не так?