Betulkan Kegagalan Pengesahan Semasa Menghantar E-mel melalui Pelayan SMTP GMail daripada PHP
Anda mungkin menghadapi ralat pengesahan berikut semasa cuba menghantar e-mel menggunakan skrip PHP anda:
authentication failure [SMTP: SMTP server does no support authentication (code: 250, response: mx.google.com at your service, [98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]
Ralat ini biasanya berlaku apabila konfigurasi SMTP yang ditentukan ialah tidak betul atau tidak lengkap. Untuk menyelesaikan isu ini, sahkan konfigurasi anda dan laraskannya kepada yang berikut:
require_once "Mail.php"; $from = "Sandra Sender <[email protected]>"; $to = "Ramona Recipient <[email protected]>"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; $host = "ssl://smtp.gmail.com"; $port = "465"; $username = "[email protected]"; $password = "testtest"; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo("<p>" . $mail->getMessage() . "</p>"); } else { echo("<p>Message successfully sent!</p>"); }
Dengan menyatakan ssl:// dalam konfigurasi hos, anda mewujudkan sambungan SSL selamat ke pelayan SMTP GMail. Selain itu, anda mesti menentukan port yang betul untuk SSL, iaitu 465.
Pastikan nama pengguna dan kata laluan anda betul. Ini sepatutnya menjadi bukti kelayakan GMail anda.
Setelah anda melaraskan konfigurasi anda, skrip PHP anda sepatutnya boleh menghantar e-mel melalui pelayan SMTP GMail tanpa menghadapi ralat kegagalan pengesahan.
Atas ialah kandungan terperinci Mengapakah e-mel PHP saya dihantar ke Gmail gagal pengesahan, dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!