Предупреждение: mail(): ответ SMTP-сервера: 550 Недопустимый синтаксис. Синтаксис должен быть MAIL FROM:mailbox@domain[crlf]

Итак, у меня есть следующий php, и я использую поддельный метод sendmail для отправки электронной почты из контактной формы в Windows через WAMP.

$to='[email protected]';
$mail_subject='Contact Form: $name_first $name_last: $subject';
$mail_message='$message';
$headers='From: $contact_email'."\r\n".
          'Reply-To: $contact_email' . "\r\n" .
          'X-Mailer:PHP/'.phpversion();

mail($to,$mail_subject,$mail_message,$headers);

Получение следующей ошибки:

Предупреждение: mail(): ответ SMTP-сервера: 550 Недопустимый синтаксис. Синтаксис должен быть MAIL FROM:‹mailbox@domain›[crlf]

$contact_email извлекается через $_Post["contactEmail"] из веб-формы. И я смог подтвердить, что он извлекает его, просто установив эхо-тег прямо перед функцией mail().

Я несколько в растерянности. Мои заголовки взяты почти прямо из документации по php: http://php.net/manual/en/function.mail.php

$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

Любая помощь будет оценена по достоинству.


person mjmiller1824    schedule 05.12.2017    source источник
comment
вы можете попробовать использовать фактический идентификатор электронной почты вместо $contact_email. если это не работает, то проблема в вашей конфигурации, и если это работает, проблема находится в $contact_email   -  person BlindSniper    schedule 07.12.2017
comment
Это не работает с фактической электронной почтой на месте. Что нужно изменить в моей конфигурации?   -  person mjmiller1824    schedule 11.12.2017


Ответы (1)


Адрес электронной почты должен быть заключен в угловые скобки:

$headers = 'From: <$contact_email>'."\r\n".
          'Reply-To: <$contact_email>' . "\r\n" .
          'X-Mailer:PHP/'.phpversion();
person knittl    schedule 28.06.2021