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

  • Автор темы Алексей Лебедев1
  • 40
  • Обновлено
  • 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:

Алексей Лебедев1


Рег
21 Jan, 2013

Тем
1

Постов
2

Баллов
12
  • 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:
 

gradus36


Рег
16 Mar, 2012

Тем
0

Постов
2

Баллов
2
  • 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

Тем
0

Постов
3

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

Алёна4


Рег
02 Jun, 2014

Тем
1

Постов
3

Баллов
13
  • 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.

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

Дмитрий 1634393702


Рег
17 May, 2013

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно