Ответ SMTP-сервера: 550 - в настоящее время запрещена ретрансляция 550 через этот сервер - PullRequest
2 голосов
/ 18 марта 2011

Я использую php mail () для отправки электронной почты через SMTP. Но когда я отправляю почту с example@example.com, я получаю сообщение об ошибке ниже,

Предупреждение: mail () [function.mail]: Ответ SMTP-сервера: 550- (ABC-7d3b78ff) [117.98.220.45]: 1747 в настоящее время не разрешено ретранслировать 550 через этот сервер.Возможно, вы не выполнили вход на сервер pop / imap 550 за последние 30 минут или не включили аутентификацию SMTP в почтовом клиенте 550.

Это проблема с моим кодом, или я долженнужно изменить на стороне сервера?

Вот мой код:

$header .= "\r\nMIME-Version: 1.0";
$header .= "\r\nContent-type: text/html; charset=iso-8859-1\r\n";

$from    = $row["fromid"];
$to      = $row["email_addr"]; // abc@yahoo.com sending to other than same domain mail
$subject = $row["subject"];

mail($to,$subject,$body,$header);

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Похоже, что PHP на вашем сервере настроен для общения с SMTP-сервером при использовании mail().Это сообщение об ошибке указывает, что ваш SMTP-сервер ожидает, что вы либо выполните прямую аутентификацию, либо вы выполните аутентификацию POP-before-SMTP.Если вы пользуетесь виртуальным хостингом, я рекомендую вашему провайдеру веб-хостинга за то, что он такой умный.

Как уже упоминалось в комментариях SwiftMailer - это мощная и простая в использовании библиотека почтовых сообщений, включающая возможность выполнения SMTP аутентификации .Некоторые люди также рекомендуют PHPMailer или Почта PEAR , которые также могут выполнять SMTP-аутентификацию.

1 голос
/ 22 сентября 2013

Эту проблему можно решить, просто добавив следующую строку в ваш php:

    ini_set(sendmail_from,'yourmail@abc.com');

Таким образом ваш код станет:

    $header .= "\r\nMIME-Version: 1.0";
    $header .= "\r\nContent-type: text/html; charset=iso-8859-1\r\n";

    $from    = $row["fromid"];
    $to      = $row["email_addr"]; // abc@yahoo.com sending to other than same domain mail
    $subject = $row["subject"];

    ini_set(sendmail_from,'yourmail@abc.com');
    mail($to,$subject,$body,$header);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...