Problem mit dem „From“-Header in PHP-Mail
Um die Benutzerfunktionalität zu verbessern, wurde eine Website entwickelt, um dem Benutzer automatisch E-Mails zu senden Anmeldung. Der für diese Aufgabe verwendete PHP-Code wird unten detailliert beschrieben:
<?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."; ?>
Beim Versenden von E-Mails über diesen Code trat ein unerwartetes Problem auf. Der in den zugestellten E-Mails angezeigte „From“-Header blieb als „[email protected]“ erhalten, während der „Reply-To“-Header korrekt den angegebenen „[email protected]“-Wert widerspiegelte. Der verwendete Mailserver war box123.bluehost.com.
Ursache des Problems
Nach weiteren Untersuchungen wurde festgestellt, dass die Verwendung einer Gmail-Adresse als „ Der Wert „Von“ war die Hauptursache des Problems. Internetdienstanbieter (ISPs), einschließlich Bluehost, schränken häufig die Verwendung externer E-Mail-Adressen als „Von“-Wert ein, um E-Mail-Spoofing zu verhindern. Infolgedessen hat der ISP die „Von“-Adresse mit ihrem Standardwert überschrieben.
Problemumgehung
Um dieses Problem zu beheben und Antworten an die vorgesehene Adresse umzuleiten, ist dies der Fall Es wird empfohlen, stattdessen den Header „Reply-To“ zu verwenden. Zusätzlich kann der Funktion mail() ein fünfter Parameter hinzugefügt werden, wie unten gezeigt:
mail($to,$subject,$message,$headers,"-f [email protected]");
Dieser Parameter gibt die Option „-f“ an, die bei vielen ISPs die manuelle Einstellung des „From“-Headers ermöglicht .
Das obige ist der detaillierte Inhalt vonWarum wird der „From'-Header meiner PHP-Funktion „mail()' ignoriert und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!