เรากำลังคิดที่จะย้ายไปอยู่ที่ 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 กับผู้ใช้ที่ได้รับอนุญาตหรือไม่ (รหัสด้านบน)
- จำเป็นต้องมีการตั้งค่าพิเศษใด ๆ ในการแลกเปลี่ยนหรือผู้ใช้ที่ได้รับอนุญาตให้ใช้งานได้หรือไม่? (ถ้าคำตอบของ 1 คือใช่)
- เป็นไปได้ไหมที่จะส่งอีเมลผ่านกล่องจดหมายที่ใช้ร่วมกันซึ่งผู้ใช้ที่ได้รับการรับรองมีสิทธิ์ส่งเป็น?
ปรับปรุง
ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดเดียวกัน เราเปิดใช้งาน MFA สำหรับผู้ใช้โดเมนของเราแล้ว อย่างไรก็ตามเรามีนโยบายที่ไม่ต้องการ MFA สำหรับผู้ใช้เมื่อพวกเขาลงชื่อเข้าใช้จากสถานที่ที่เชื่อถือได้ (IP ขององค์กรของเรา) ฉันยังระบุ IP ของเราเป็น IP ที่เชื่อถือได้ ในใจของฉัน MFA ไม่ควรเป็นปัญหาที่นี่
ฉันรู้ว่าข้อมูลรับรองถูกต้อง ฉันคัดลอกจากรหัสและวางลงในหน้าจอเข้าสู่ระบบเมื่อลงชื่อเข้าใช้ M365 - และฉันก็ทำได้ดี
ผมทำอะไรผิดหรือเปล่า?