обратный адрес mail()

  • Автор темы R-PORNO-EXE-r
  • Обновлено
  • 17, May 2024
  • #1
Мне нужно установить обратный адрес для моей почтовой функции. Прямо сейчас он всегда помещает туда адрес электронной почты сервера: -2.com.

Спасибо за любую помощь.
  $to = $userEmail;
 $subject = 'Front Page Reply';
 $message = wordwrap($_POST['message'], 70);
 $headers = 'MIME-Version: 1.0\r\n';
 $headers .= 'Content-type: text/html; charset=iso-8859-1\r\n';
 $headers .= 'From: '.$_POST['email'].'' . "\r\n" .
 'Reply-To: '.$_POST['email'].'' . "\r\n" .
 'Return-Path: '.$_POST['email'].'' . "\r\n" .

 mail($to, $subject, $message, $headers);
PHP:

R-PORNO-EXE-r


Рег
04 Jul, 2006

Тем
70

Постов
178

Баллов
558
  • 18, May 2024
  • #2
Привет,

Спасибо за ответ. Я попробовал оба одновременно, но сообщение даже не отправляется. Не заходили входящие, спам или рекламные акции в Gmail. Я повторил как $to, так и $_POST['email']. Ценности правильные..

  $to = $userEmail;
 $subject = 'Front Page Reply';
 $message = wordwrap($_POST['message'], 70);
 $headers = 'MIME-Version: 1.0' ."\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .= 'From: '.$_POST['email'].'' . "\r\n" .
 'Reply-To: '.$_POST['email'].'' . "\r\n" .
 'Return-Path: '.$_POST['email'].'' . "\r\n" .

 mail($to, $subject, $message, $headers, $_POST['email']);

 header('Location: ../../ad.php?token='.$_POST['token'].'&success=message+sent');
 exit;


PHP:
 

Williampwso


Рег
16 Mar, 2012

Тем
70

Постов
196

Баллов
576
  • 06, Jun 2024
  • #3
Отсутствующий ; в конце линии обратного пути
 
$to = $userEmail;
$subject = 'Front Page Reply';
$message = wordwrap($_POST['message'], 70);
$headers = 'MIME-Version: 1.0' ."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$_POST['email'].'' . "\r\n" .
'Reply-To: '.$_POST['email'].'' . "\r\n" .
'Return-Path: '.$_POST['email'].'' . "\r\n";

mail($to, $subject, $message, $headers, $_POST['email']);

header('Location: ../../ad.php?token='.$_POST['token'].'&success=message+sent');
exit;
PHP:
 

Nelot


Рег
19 Mar, 2014

Тем
74

Постов
186

Баллов
596
  • 10, Jun 2024
  • #4
Все три из них представляют конец строки. Но... \r (возврат каретки) — перемещает курсор в начало строки без перехода на следующую строку. \n (Line Feed) — перемещает курсор вниз на следующую строку, не возвращаясь к началу строки — *В a nix-окружение \n перемещается в начало строки. \r\n (конец строки) — комбинация \r и \n. Источник: Экзамен
 

Алёна4


Рег
02 Jun, 2014

Тем
74

Постов
189

Баллов
579
  • 13, Jun 2024
  • #5
Несколько советов... НИКОГДА не сбрасывайте $_POST вслепую. (или $_GET или $_REQUEST или любой другой пользовательский ввод) в поле заголовков.

ОСОБЕННО в поле заголовков.

Хорошее эмпирическое правило для параметров $to, $subject и $additional_headers для почты: ВСЕГДА удаляйте возврат каретки, перевод строки И точку с запятой, поскольку они имеют особое значение, которое может позволить людям перехватить вашу почтовую форму!

Я также считаю, что определить CRLF удобно, мне кажется, что это чище.

и сейчас 2016 год, а не 1996 год, используйте utf-8, поскольку, если ваш документ чего-то стоит, он уже настроен и использует его.

Я использую эту функцию для очистки значений, если они попадают в эти поля для mail().

 define('CRLF', "\r\n");

function mailPost($index) {
return
array_key_exists($index, $_POST) ?
str_replace(["\r", "\n", ';'], ' ', $_POST[$index]) :
'';
}

$subject = 'Front Page Reply';
$message = wordwrap($_POST['message'], 70);
$from = mailPost('email');
$headers =
'MIME-Version: 1.0' . CRLF .
'X-Mailer: PHP/' . phpversion() . CRLF .
'Content-type: text/html; charset=utf-8' . CRLF .
'From: ' . $from . CRLF .
'Reply-To: ' . $from . CRLF .
'Return-Path: ' . $from . CRLF;

mail($userEmail, $subject, $message, $headers);

header('Location: ../../ad.php?token='.$_POST['token'].'&success=message+sent');

exit;


Код (разметка): примечание Здесь массив PHP 5.4+! Итак, мое обращение с этим будет примерно таким:
 function mailPost($index) { return array_key_exists($index, $_POST) ? str_replace(["\r", "\n", ';'], ' ', $_POST[$index]) : ''; }
Код (разметка): НЕ то, чтобы я использовал какое-то глупое перенаправление заголовка. (ПОЧЕМУ, черт возьми, люди это делают?) или вызов выхода, поскольку я склонен использовать подход «один индекс, чтобы управлять ими всеми» при разработке PHP.

Вы не хотите случайной повторной отправки, поместите случайный хэш в форму в качестве скрытого ввода и в свой сеанс и сравните его, признавая его недействительным в каждом запросе, будь то прохождение проверки (отправка почты) или сбой (поэтому повторно отправьте заполненную форму )
 

Fliellvesty


Рег
17 May, 2013

Тем
84

Постов
194

Баллов
654
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно