Мы используем функцию php mail для отправки писем нашим клиентам. Несколько дней назад мы обнаружили, что электронная почта доставляется не только hotmail.com домен. Я проверил журнал электронной почты, чтобы увидеть, есть ли сообщения об ошибках, и вот что я нашел:
Aug 30 23:02:50 XXX sendmail[35378]: AXXX: to=<XX@hotmail.com>, ctladdr=<apache@XXX> (48/48), delay=00:00:05, xdelay=00:00:05, mailer=esmtp, pri=121148, relay=mx.XXX. [], dsn=5.6.0, stat=Data format error
Aug 30 23:02:50 sendmail[35378]: DSN: Data format error
Что это Ошибка формата данных и как это исправить? Что это за ctladdr и нужно ли мне устанавливать его с помощью PHP или нет? Нужно ли мне обращаться к провайдеру сервера по поводу этой проблемы, или это проблема, связанная с моим приложением php?
Мой PHP-код для отправки писем:
function send_email( $name_from, $email_from, $email_to, $subject, $message, $headers="" ) {
$returnVal = 0;
// made it through validation, send email
$subject = trim( $subject );
$message = trim( $message );
$headers .= "FROM: $name_from <$email_from>";
if( mail( "$email_to", "$subject", "$message", "$headers") or die ( trigger_error ( "Error: ", E_USER_ERROR ))) {
$returnVal = 1;
}
return $returnVal;
}
Как вы можете видеть в моем $headers
Я установил поле ОТ.
Спасибо за ответы?
Доменное имя вашего сервера не принимается (используется в FROM). Оно либо неразрешимо, либо имеет неверный формат и т. Д.