ฉันสามารถส่งอีเมล SMTP ผ่านกล่องจดหมายที่แชร์ของ Office365 ได้หรือไม่


13

เรากำลังคิดที่จะย้ายไปอยู่ที่ 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 มาก

  1. มีวิธีการส่งผ่าน O365 กับผู้ใช้ที่ได้รับอนุญาตหรือไม่ (รหัสด้านบน)
  2. จำเป็นต้องมีการตั้งค่าพิเศษใด ๆ ในการแลกเปลี่ยนหรือผู้ใช้ที่ได้รับอนุญาตให้ใช้งานได้หรือไม่? (ถ้าคำตอบของ 1 คือใช่)
  3. เป็นไปได้ไหมที่จะส่งอีเมลผ่านกล่องจดหมายที่ใช้ร่วมกันซึ่งผู้ใช้ที่ได้รับการรับรองมีสิทธิ์ส่งเป็น?

ปรับปรุง

ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดเดียวกัน เราเปิดใช้งาน MFA สำหรับผู้ใช้โดเมนของเราแล้ว อย่างไรก็ตามเรามีนโยบายที่ไม่ต้องการ MFA สำหรับผู้ใช้เมื่อพวกเขาลงชื่อเข้าใช้จากสถานที่ที่เชื่อถือได้ (IP ขององค์กรของเรา) ฉันยังระบุ IP ของเราเป็น IP ที่เชื่อถือได้ ในใจของฉัน MFA ไม่ควรเป็นปัญหาที่นี่

ฉันรู้ว่าข้อมูลรับรองถูกต้อง ฉันคัดลอกจากรหัสและวางลงในหน้าจอเข้าสู่ระบบเมื่อลงชื่อเข้าใช้ M365 - และฉันก็ทำได้ดี

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


7
  1. ใช่คุณสามารถ.

  2. UserSettings: สกรีนช็อตของ Admin Center สกรีนช็อตของจัดการแอปอีเมล

การตั้งค่าเซิร์ฟเวอร์: https://support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

SMTP server name smtp.office365.com

SMTP port 587

SMTP encryption method STARTTLS
  1. ไม่คุณไม่สามารถ. คุณต้องมีผู้ใช้ที่ได้รับอนุญาตเพื่อส่งเมลผ่าน SMTP

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-up-smtp-relay-with-shared-mailbox/d7b98214-9564-432c-b098-525a98c529fb

ลูกค้าของเรามีระบบจดหมายข่าวที่ติดตั้งด้วย TYPO3 และเราต้องสร้างกล่องจดหมายใหม่สำหรับสิ่งนี้ อย่างไรก็ตามแสงสว่างเพียงหนึ่งเดียวจะเพียงพอ: แทนที่จะเป็น Office 365 Business Premium เราจะกำหนดสิทธิ์ใช้งาน Office 365 F1 เท่านั้น

แก้ไข: ค้นพบสิ่งนี้: Office365 กล่องจดหมายที่ใช้ร่วมกันสามารถใช้ SMTP ได้หรือไม่


ดังนั้นดูเหมือนว่าจะตอบคำถามของฉันเกี่ยวกับกล่องจดหมายที่ใช้ร่วมกัน แต่ในรหัสเริ่มต้นของฉันฉันกำลังทำงานกับผู้ใช้ที่ได้รับอนุญาตและนั่นก็ไม่ทำงานเช่นกัน - ควรหรือไม่
RHarris

@Rarris ใช่มันควร ดูคำตอบที่แก้ไขแล้ว ขออภัยที่ตอบครั้งแรกไม่สมบูรณ์
Wolfgang Jacques

0

สำหรับทุกคนที่มีปัญหาคล้ายกันฉันพบว่าปัญหาของฉันคือนโยบายการเข้าถึงแบบมีเงื่อนไข Microsoft ให้บริการBaseline Policy: Block Legacy Authentication- ซึ่งเปิดใช้งานใน AAD ของเรา

ในการดูนโยบายนั้นถูกออกแบบมาเพื่อบล็อกกลไกการตรวจสอบสิทธิ์ใด ๆ ที่ไม่ต้องการ MFA รวมถึงสิ่งต่างๆเช่น POP และ SMTP เมื่อฉันปิดใช้งานนโยบายนี้รหัสที่แสดงด้านบนใช้ได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.