Chúng tôi đang suy nghĩ về việc chuyển sang O365; tuy nhiên, chúng tôi đã phát triển phần mềm sử dụng máy chủ Exchange hiện tại của chúng tôi để gửi email cho cả người dùng bên ngoài cũng như tới hộp hỗ trợ khi xảy ra lỗi.
Tôi đã thử nghiệm điều này để đảm bảo rằng mã chúng tôi có sẽ tiếp tục hoạt động với O365 nhưng cho đến nay, tôi vẫn chưa thành công.
Tôi đã thử sử dụng SmtpClient của .Net cũng như SmtpClient của MailKit và dường như không ai hoạt động. Tôi liên tục gặp lỗi (đây là lỗi từ MailKit - lỗi .Net tương tự)
"Xác thựcInvalidCredentials: 5.7.3 Xác thực không thành công [* .prod.exchangelabs.com]"
Tôi có thể sử dụng thông tin đăng nhập mà tôi có trong mã của mình để đăng nhập vào OWA - vì vậy tôi biết thông tin đăng nhập hợp lệ. Có phải là không thể gửi email qua O356? Có cấu hình đặc biệt nào phải xảy ra trong Exchange để thực hiện điều này không?
Đây là những gì tôi đã thử cho đến nay:
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);
}
Mã .Net SmtpClient trông rất giống với mã MailKit.
- Có cách nào để gửi qua O365 với người dùng được cấp phép không? (mã ở trên)
- Có bất kỳ cài đặt đặc biệt nào được yêu cầu trong Exchange hoặc trên người dùng được cấp phép để thực hiện công việc này không? (Nếu câu trả lời cho 1 là có)
- Có thể gửi email thông qua hộp thư chung mà người dùng được ủy quyền có quyền Gửi dưới dạng không?
Cập nhật
Tôi vẫn nhận được thông báo lỗi tương tự. Chúng tôi đã kích hoạt MFA cho người dùng tên miền của chúng tôi. Tuy nhiên, chúng tôi có chính sách không yêu cầu MFA cho người dùng khi họ đăng nhập từ một địa điểm đáng tin cậy (IP của chúng tôi). Tôi cũng liệt kê IP của chúng tôi là IP đáng tin cậy. Trong tâm trí của tôi, MFA không nên là vấn đề ở đây.
Tôi biết các thông tin là chính xác. Tôi đã sao chép chúng từ mã và dán chúng vào màn hình đăng nhập khi đăng nhập vào M365 - và tôi đã ổn.
Tôi đang làm gì sai?