Ми думаємо про перехід до 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 для користувачів, коли вони входять із надійного місця (IP нашого органу). Я також вказав наш IP як довірений IP. На мій погляд, МЗС не повинно бути тут проблемою.
Я знаю, що облікові дані правильні. Я скопіював їх з коду і вставив їх на екран входу при вході в M365 - і мені все вдалося.
Що я роблю неправильно?