Как получить электронное письмо отправителя с помощью wp mail()?
У меня есть такой простой следующий код:
<?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
}
?>
Мой вопрос заключается в том, как получить электронное письмо отправителя вместо сгенерированного wp_mail()
из заголовка $ wordpress@$sitename
?
Заранее спасибо за любую помощь.
2 answers
Я выучил дорогой (по времени) урок.
В следующий раз, когда я захочу установить контактную форму, я сначала проверю конкретную конфигурацию хост-серверов в отношении настроек электронной почты!
Благодаря Стиву Норту я понял, что мой хост не разрешает прямые пользовательские заголовки $ по соображениям безопасности...
Но, я думаю, что у каждого приличного хостера есть решения для своих клиентов.
Итак, если у вас дешевое имя (это мой случай), вы можете обратиться к этому статья Как настроить контактную форму, размещенную у нас
Надеюсь, что это поможет другим. СЯ:)
Вы не задаете адрес отправителя.
Вы можете сделать следующее:
<?php
//if "email" variable is filled out, send email
if (isset($_POST['email'])) {
//Email information
$to = get_option( 'admin_email' );
$headers = array('From: Me Myself <'.$_POST['email'].'>'); //updated
$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>
Как вы можете видеть, $headers использует массив, содержащий текст "От:", чтобы задать заголовок "от".
Надеюсь, это поможет.