web-dev-qa-db-de.com

Wie kann ich die Absender-E-Mail mit wp_mail () abrufen?

Ich habe diesen einfachen folgenden Code:

<?php
//if "email" variable is filled out, send email
if (isset($_POST['email']))  {
    //Email information
    $to = get_option( 'admin_email' );
    $headers = $_POST['email'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];

    //send email
    wp_mail($to, $subject, $message, $headers);

    //Email response
    echo "Thank you for contacting us!";
}

    //if "email" variable is not filled out, display the form
    else  {
?>
<form method="post">
    Email: <input name="email" type="text" /><br />
    Subject: <input name="subject" type="text" /><br />
    Message:<br />
    <textarea name="message" rows="15" cols="40"></textarea><br />
    <input type="submit" value="Submit" />
 </form>

<?php
  }
?>

Meine Frage ist, wie man die Absender-eMail anstelle der erzeugten wp_mail() von $ header [email protected]$sitename zurückholt?

Vielen Dank im Voraus für jede Hilfe.

1
LebCit

Ich habe eineteure (Zeit)Lektion gelernt.
Wenn ich das nächste Mal ein Kontaktformular einrichten möchte, überprüfe ichzuerstdie spezifische Konfiguration des Hostservers bezüglich der E-Mail-Einstellungen!
Dank Steve North habe ich verstanden, dass mein Hostaus Sicherheitsgründen keine benutzerdefinierten $ -Header zulässt...
Aber ich denke, dass jeder anständige Host Lösungen für seine Kunden hat.
Also, wenn Sie bei Name Cheap sind (das ist mein Fall), können Sie sich auf diesen Artikel beziehen So konfigurieren Sie das bei uns gehostete Kontaktformular

Hoffe, dass dies anderen helfen wird. SYA :)

0
LebCit

Sie legen die Absenderadresse nicht fest.

Sie können Folgendes tun:

<?php
//if "email" variable is filled out, send email
if (isset($_POST['email']))  {
    //Email information
    $to = get_option( 'admin_email' );
    $headers = array('From:'.$_POST['email']);
    $subject = $_POST['subject'];
    $message = $_POST['message'];

    //send email
    wp_mail($to, $subject, $message, $headers);

    //Email response
    echo "Thank you for contacting us!";
}

    //if "email" variable is not filled out, display the form
    else  {
?>
<form method="post">
    Email: <input name="email" type="text" /><br />
    Subject: <input name="subject" type="text" /><br />
    Message:<br />
    <textarea name="message" rows="15" cols="40"></textarea><br />
    <input type="submit" value="Submit" />
 </form>

Wie Sie sehen, verwenden die $ -Header ein Array, das den Text 'From:' enthält, um den from -Header festzulegen.

Hoffentlich hilft das.

0
Steve North