Wie sende ich eine E-Mail mit wp_mail () mit einer E-Mail, die ich aus dem Kontaktformular anstelle des Hosts genommen habe?

Ich habe SMTL so eingerichtet,

add_action( "phpmailer_init", "send_smtp_email" ); function send_smtp_email( $phpmailer ) { ini_set("sendmail_from","xyz@gmail.com"); ini_set("sendmail_path","xyz@gmail.com"); // Define that we are sending with SMTP $phpmailer->isSMTP(); // The hostname of the mail server $phpmailer->Host = "localhost"; // Use SMTP authentication (true|false) $phpmailer->SMTPAuth = false; // SMTP port number - likely to be 25, 465 or 587 $phpmailer->Port = "25"; // Encryption system to use - ssl or tls $phpmailer->SMTPSecure = "tls"; $phpmailer->From = "xyz@gmail.com"; $phpmailer->FromName = "XYZ"; } 

und unten Code für mein Kontaktformular hinzugefügt, um E-Mails zu senden.

 $headers = array('MIME-Version: 1.0'.'From: '.$_POST['namee'].''.'Reply-To: '.$_POST['email']); $comment = $comment . "\r\n" . "\r\nIP Address: " . $id . "\r\nUser Agent: " . $browser . "\r\nReferrer: " . $referrer; wp_mail($to,$website,$comment,$headers); 

Aber, es setzt weder die Header richtig noch sendet es die E-Mail mit der Absenderadresse als die aus dem Kontaktformular genommen.

Ich bekomme E-Mails, aber die Absenderadresse in diesen E-Mails ist die des Hostservers.

Ich möchte, dass die E-Mail-Adresse aus dem Kontaktformular als Absenderadresse in der E-Mail festgelegt wird.

Ich weiß, dass es Haken gibt, um die Admin-E-Mail und den Namen zu ersetzen, aber das ersetzt die E-Mail-Adresse und den Namen des Site-Administrators und wird statisch. Ich möchte, dass die E-Mail-Adresse, die der Benutzer in das Kontaktformular eingibt, die Absenderadresse in der E-Mail sein soll, die gesendet wird.

Wie kann ich das machen? Weiß jemand davon?

Solutions Collecting From Web of "Wie sende ich eine E-Mail mit wp_mail () mit einer E-Mail, die ich aus dem Kontaktformular anstelle des Hosts genommen habe?"

Sie müssen den from-Namen und die E-Mail-Adresse nicht an PHPMailer in Ihrem Code übergeben, da dieser von $headers headers ausgeht. Versuchen Sie also Folgendes:

 add_action( "phpmailer_init", "send_smtp_email" ); function send_smtp_email( $phpmailer ) { // ini_set("sendmail_from","xyz@gmail.com"); // ini_set("sendmail_path","xyz@gmail.com"); // Define that we are sending with SMTP $phpmailer->isSMTP(); // The hostname of the mail server $phpmailer->Host = "localhost"; // Use SMTP authentication (true|false) $phpmailer->SMTPAuth = false; // SMTP port number - likely to be 25, 465 or 587 $phpmailer->Port = "25"; // Encryption system to use - ssl or tls $phpmailer->SMTPSecure = "tls"; // $phpmailer->From = "xyz@gmail.com"; // $phpmailer->FromName = "XYZ"; } 

Überprüfen Sie außerdem den Namen des Formularfelds nach: $_POST['namee']