Bisakah saya mengirim email SMTP melalui Office365 shared mailbox?

13

Kami berpikir tentang pindah ke O365; namun, kami mengembangkan perangkat lunak yang menggunakan server Exchange kami saat ini untuk mengirim email baik kepada pengguna eksternal maupun ke kotak dukungan ketika kesalahan terjadi.

Saya telah menguji ini untuk memastikan bahwa kode yang kami miliki akan terus bekerja dengan O365 tetapi sejauh ini, saya belum terlalu berhasil.

Saya telah mencoba menggunakan SmtpClient .Net serta SmtpClient dari MailKit dan tampaknya tidak ada yang berhasil. Saya terus mendapatkan kesalahan (ini adalah kesalahan dari MailKit - kesalahan .Net serupa)

"AuthenticationInvalidCredentials: 5.7.3 Otentikasi tidak berhasil [* .prod.exchangelabs.com]"

Saya dapat menggunakan kredensial yang saya miliki dalam kode saya untuk masuk ke OWA - jadi saya tahu kredensial itu valid. Apakah tidak mungkin mengirim email melalui O356? Apakah ada konfigurasi khusus yang harus terjadi di Exchange untuk memungkinkan ini?

Inilah yang saya coba sejauh ini:

MailKit

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","[email protected]"));
msg.To.Add(new MailboxAddress("Me","[email protected]"));
msg.To.Add(new MailboxAddress("External User","[email protected]"));
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("[email protected]", "supportPwd"));
    client.Send(msg);
    client.Disconnect(true);
}

Kode .Net SmtpClient tampak sangat mirip dengan kode MailKit.

  1. Apakah ada cara untuk mengirim melalui O365 dengan pengguna berlisensi? (kode di atas)
  2. Apakah ada pengaturan khusus yang diperlukan di Exchange atau pada pengguna berlisensi untuk membuat ini berfungsi? (Jika jawaban 1 adalah ya)
  3. Apakah mungkin untuk mengirim email melalui kotak surat bersama yang pengguna kredensial memiliki hak Kirim Sebagai?

Memperbarui

Saya masih mendapatkan pesan kesalahan yang sama. Kami memang mengaktifkan MFA untuk pengguna domain kami. Namun, kami memiliki kebijakan yang tidak mengharuskan MFA untuk pengguna saat mereka masuk dari lokasi tepercaya (IP org kami). Saya juga mendaftarkan IP kami sebagai IP Tepercaya. Menurut saya, MFA seharusnya tidak menjadi masalah di sini.

Saya tahu kredensial sudah benar. Saya menyalinnya dari kode dan menempelkannya ke layar masuk saat masuk ke M365 - dan saya mendapatkannya dengan baik.

Apa yang saya lakukan salah?

RHarris
sumber

Jawaban:

7
  1. Ya kamu bisa.

  2. Pengaturan pengguna: Cuplikan layar dari Pusat Admin Cuplikan layar Kelola aplikasi email

Pengaturan server: 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. Tidak Anda tidak bisa. Anda memerlukan pengguna berlisensi untuk mengirim email melalui SMTP.

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

Pelanggan kami memiliki sistem buletin yang diatur dengan TYPO3 dan kami harus membuat kotak surat baru untuk ini. Namun, yang ringan akan cukup: alih-alih Office 365 Business Premium kami hanya menetapkan lisensi Office 365 F1.

Sunting: juga menemukan ini: Dapatkah Office365 membagikan kotak surat menggunakan SMTP?

Wolfgang Jacques
sumber
Jadi itu sepertinya menjawab pertanyaan saya mengenai Kotak Surat Bersama. Tetapi dalam kode awal saya, saya bekerja dengan pengguna berlisensi dan itu juga tidak berfungsi - bukan?
RHarris
@Rarvis ya seharusnya begitu. Lihat jawaban yang diedit. Maaf untuk balasan pertama yang tidak lengkap.
Wolfgang Jacques
0

Bagi siapa pun yang memiliki masalah serupa, saya menemukan bahwa masalah saya adalah Kebijakan Akses Bersyarat. Microsoft menyediakanBaseline Policy: Block Legacy Authentication - yang telah dihidupkan dalam AAD kami.

Dalam melihat Kebijakan, kebijakan ini dirancang untuk MEMBLOKIR mekanisme otentikasi apa pun yang tidak memerlukan MFA. Ini termasuk hal-hal seperti POP dan SMTP. Setelah saya menonaktifkan kebijakan ini, kode yang tercantum di atas berfungsi dengan baik.

RHarris
sumber