Menyelesaikan masalah Ralat "Pengesahan SMTP Diperlukan": Menjamin Sambungan E-mel
Menghantar e-mel daripada aplikasi kadangkala boleh mengakibatkan ralat: "Pelayan SMTP memerlukan sambungan selamat atau klien tidak disahkan. Respons pelayan ialah: 5.5.1 Pengesahan Diperlukan." Ini menandakan pelayan SMTP menolak sambungan yang tidak disahkan atau bukti kelayakan yang diberikan adalah tidak betul.
Berikut ialah cara untuk menyelesaikan masalah ini:
Dayakan Log Masuk Selamat: Google mungkin menyekat percubaan log masuk tidak selamat daripada apl yang gagal memenuhi piawaian keselamatan semasa. Akses tetapan akaun Google anda dan dayakan "Akses apl yang kurang selamat" (atau pilihan yang serupa, bergantung pada konfigurasi akaun Google anda). Nota: Ini biasanya tidak digalakkan atas sebab keselamatan. Pertimbangkan untuk menggunakan Kata Laluan Apl (jika tersedia).
Sahkan Bukti Kelayakan SMTP: Semak semula kelayakan SMTP anda (nama pengguna, kata laluan dan alamat pelayan) untuk ketepatan. Pastikan tetapan ini sepadan dengan konfigurasi aplikasi anda dengan tepat.
Contoh Kod (dengan Penambahbaikan Keselamatan):
Kod berikut menunjukkan penghantaran e-mel selamat. Yang penting, ia mengelakkan penggunaan "Akses apl yang kurang selamat." Sebaliknya, ia menyerlahkan kaedah pilihan menggunakan Kata Laluan Apl (gantikan ruang letak dengan bukti kelayakan sebenar anda).
<code class="language-csharp">MailMessage msg = new MailMessage(); msg.From = new MailAddress("mymailid@gmail.com"); msg.To.Add("receipientid@example.com"); msg.Subject = "test"; msg.Body = "Test Content"; msg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(); // Use App Password here instead of your actual Gmail password client.Credentials = new NetworkCredential("mymailid@gmail.com", "YOUR_APP_PASSWORD"); client.Host = "smtp.gmail.com"; client.Port = 587; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Send(msg);</code>
Konfigurasi Web.config (menggunakan Kata Laluan Apl):
Begitu juga, kemas kini fail Web.config
anda untuk menggunakan Kata Laluan Apl dan bukannya kata laluan biasa anda:
<code class="language-xml"><appSettings> <add key="smtpServer" value="smtp.gmail.com" /> <add key="EnableSsl" value="true" /> <add key="smtpPort" value="587" /> <add key="smtpUser" value="mymailid@gmail.com" /> <add key="smtpPass" value="YOUR_APP_PASSWORD" /> <!-- Use App Password here --> <add key="adminEmail" value="adminemail@example.com" /> </appSettings> <system.net> <mailSettings> <smtp from="mymailid@gmail.com"> <network enableSsl="true" host="smtp.gmail.com" password="YOUR_APP_PASSWORD" port="587" username="mymailid@gmail.com" /> <!-- Use App Password here --> </smtp> </mailSettings> </system.net></code>
Dengan melaksanakan konfigurasi selamat ini, anda akan mewujudkan sambungan SMTP yang teguh dan dilindungi untuk penghantaran e-mel yang boleh dipercayai. Ingat untuk menjana dan menggunakan Kata Laluan Apl daripada tetapan keselamatan akaun Google anda untuk keselamatan yang dipertingkatkan.
Atas ialah kandungan terperinci Pengesahan SMTP Diperlukan: Bagaimana Saya Membetulkan Ralat '5.5.1 Pengesahan Diperlukan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!