Isu Pengepala "Dari" dalam Mel PHP
Dalam percubaan untuk meningkatkan fungsi pengguna, tapak web telah dibangunkan untuk menghantar e-mel secara automatik kepada pengguna pendaftaran. Kod PHP yang digunakan untuk tugas ini diperincikan di bawah:
<?php $to = "[email protected]"; $subject = "Test mail"; $message = "Hello! \nThis is a simple email message."; $headers = "From: [email protected]"; $headers .= "\r\nReply-To: [email protected]"; $headers .= "\r\nX-Mailer: PHP/".phpversion(); mail($to,$subject,$message,$headers); echo "Mail Sent."; ?>
Setelah menghantar e-mel melalui kod ini, isu yang tidak dijangka timbul. Pengepala "Daripada" yang dipaparkan dalam e-mel yang dihantar kekal sebagai "[emel dilindungi]", manakala pengepala "Balas Kepada" dengan betul mencerminkan nilai "[emel dilindungi]" yang ditentukan. Pelayan mel yang digunakan ialah box123.bluehost.com.
Punca Isu
Selepas siasatan lanjut, telah ditentukan bahawa penggunaan alamat Gmail sebagai " Dari" nilai adalah punca masalah. Pembekal Perkhidmatan Internet (ISP), termasuk Bluehost, biasanya mengehadkan penggunaan alamat e-mel luaran sebagai nilai "Daripada" untuk mengelakkan penipuan e-mel. Akibatnya, ISP menimpa alamat "Daripada" dengan nilai lalainya.
Penyelesaian
Untuk menangani isu ini dan mengubah hala balasan ke alamat yang dimaksudkan, ia adalah disyorkan untuk menggunakan pengepala "Balas Kepada" sebaliknya. Selain itu, parameter kelima boleh ditambah pada fungsi mail() seperti yang ditunjukkan di bawah:
mail($to,$subject,$message,$headers,"-f [email protected]");
Parameter ini menentukan pilihan "-f", yang membenarkan tetapan manual pengepala "Daripada" untuk banyak ISP .
Atas ialah kandungan terperinci Mengapakah pengepala fungsi mel() PHP saya \'Dari\' diabaikan dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!