Я хотел бы добавить неудавшееся сообщение повторно на мой почтовый скрипт, чтобы, если пользователь вводит неправильный адрес в поле электронной почты, он возвращается мне, а не в папку входящих сообщений моей хостинговой компании, как мне это сделать? Я уже добавил путь возврата, но не работает, что еще я могу сделать, чтобы этот код работал.
Вот код:
<?php if(isset($_POST['submit'])) { if(trim($_POST['first-name']) == '') { $hasError = true; } else { $name = trim($_POST['first-name']); } //Check to make sure that the last name field is not empty if(trim($_POST['last-name']) == '') { $hasError = true; } else { $lname = trim($_POST['last-name']); } //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) == '') { $hasError = true; } else if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); } //Check to make sure that the phone field is not empty if(trim($_POST['tel']) == '') { $hasError = true; } else { $phone = trim($_POST['tel']); } //Check to make sure that the phone field is not empty if(trim($_POST['company']) == '') { $hasError = true; } else { $company = trim($_POST['company']); } foreach (array($_POST['q1']) as $value) { $q1 = $value[0]; $q2 = $value[1]; $q3 = $value[2]; } //If there is no error, send the email if(!isset($hasError)) { $to = 'me@host.com'; $recipient = $email; $subject = 'Subject'; $headers = "From: Me\n" . $to . "\r\n"; $headers .= "Reply-To: ". $to . "\r\n"; $headers .= "Return-Path: ". $to . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $msg1 = "First Message"; $msg2 = "Second Message"; //Send Email mail($recipient, $subject, $msg2, $headers); mail($to, $subject, $msg1, $headers); $emailSent = true; } } ?>
путь возврата задается mta на основе отправителя конверта, вы не можете просто установить это в заголовках самостоятельно. Вы можете попытаться установить отправителя конверта с помощью аргумента $ Additional_parameters функции почты. См. Пример № 3 на http://www.php.net/manual/en/function.mail.php.
В вашем случае это будет что-то вроде
mail($recipient, $subject, $msg2, $headers, "-f $to");
В некоторых системах переопределение отправителя конверта с использованием -f ограничено. В этом случае вам, вероятно, придется переключиться на отправку почты через SMTP вместо вызова двоичного файла sendmail через mail ().