Saya cuba menyediakan PHPMailer supaya salah seorang pelanggan kami boleh menjana e-mel secara automatik daripada akaun mereka sendiri. Saya log masuk ke akaun Office 365 mereka dan mendapati bahawa tetapan yang diperlukan untuk PHPMailer ialah:
Host: smtp.off ice365.com Port: 587 Auth: tls
Saya telah menggunakan tetapan ini pada PHPMailer, tetapi tiada e-mel dihantar (fungsi yang saya panggil adalah untuk mel kami sendiri, yang dihantar dari pelayan luaran (bukan yang melayani halaman web)).
"host" => "smtp.of fice365.com", "port" => 587, "auth" => true, "secure" => "tls", "username" => "clientemail@off ice365.com", "password" => "clientpass", "to" => "myemail", "from" => "clientemail@of fice365.com", "fromname" => "clientname", "subject" => $subject, "body" => $body, "altbody" => $body, "message" => "", "debug" => false
Adakah sesiapa tahu tetapan apa yang diperlukan untuk PHPMailer hantar melalui smtp.offi ce365.com?
Dikemas kini: Mei 2022
Jadi saya sedang bergelut dengan isu ini. Saya boleh memberikan jawapan kepada soalan ini untuk akaun perusahaan dengan akses kepada Exchange Online dan Pusat Pentadbiran Microsoft.
TLDR: Pergi ke pusat pentadbir dan pilih pengguna yang ingin anda hantar mel. Kemudian selepas menyediakan "SMTP yang disahkan" lihat tetapan selepas "E-mel" dan "Aplikasi E-mel" dan hanya membolehkannya.
Masih tidak berfungsi? Saya telah membantu anda, berikut ialah cara saya membuatnya berfungsi sepenuhnya.
Jika anda menggunakan MFA, pastikan anda menggunakan kata laluan apl a/61359150/14148981 seperti yang dinyatakan dalam https://stackoverflow.com/
Jalankan skrip
Saya harap ini membantu seseorang. Saya mengambil masa yang lama untuk mencari pilihan ini.
Dapatkan ringkasan semua langkah untuk kata laluan dan pengesahan apl:
Kod
@nitin tidak berfungsi untuk saya kerana ia tiada "tls" dalam parameter SMTPSecure.
Ini adalah versi yang berfungsi. Saya juga telah menambah dua baris komen yang boleh anda gunakan jika masalah timbul.