2016-07-20 1 views
0

Я размещаю сайт через bluehost.com, у которого есть функция электронной почты, которую я построил на PHPMailer. Он работает нормально, но похоже, что в течение последних 24 часов Bluehost изменил некоторые настройки безопасности. Отлаживая это, я не понимаю, как это решить.PHPMailer отклоняется с помощью «Host impersonating» при запуске скрипта из CLI (cron)

Похоже, что bluehost настроил свой конец, чтобы теперь проверить хост, который подключается к SMTP-серверу. Если я вызвать электронную почту, просматривая сайт, электронная почта по-прежнему посылает штраф:

SERVER -> CLIENT: 220-box304.bluehost.com ESMTP Exim 4.86_2 #1 Wed, 20 Jul 2016 10:16:19 -0600 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. 
CLIENT -> SERVER: EHLO www.fydentry.com 
SERVER -> CLIENT: 250-box304.bluehost.com Hello www.fydentry.com [69.89.31.104]250-SIZE 52428800250-8BITMIME250-AUTH PLAIN LOGIN250 HELP 
CLIENT -> SERVER: AUTH LOGIN 
... 
SERVER -> CLIENT: 235 Authentication succeeded 

Некоторые (большинство) электронной почты не передаются в интерактивном режиме, хотя и находятся в очереди в базе данных, которую PHP скрипт периодически выполняет в фон через задание cron, чтобы отправить эти электронные письма. Это работало отлично, но как вчера, сценарий в настоящее время бросает ошибку:

SERVER -> CLIENT: 220-box304.bluehost.com ESMTP Exim 4.86_2 #1 Wed, 20 Jul 2016 10:30:08 -0600 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. 
CLIENT -> SERVER: EHLO box304.bluehost.com 
SERVER -> CLIENT: 550 "REJECTED - Bad HELO - Host impersonating [box304.bluehost.com]" 
SMTP ERROR: EHLO command failed: 550 "REJECTED - Bad HELO - Host impersonating [box304.bluehost.com]" 
CLIENT -> SERVER: HELO box304.bluehost.com 
SERVER -> CLIENT: 550 "REJECTED - Bad HELO - Host impersonating [box304.bluehost.com]" 
SMTP ERROR: HELO command failed: 550 "REJECTED - Bad HELO - Host impersonating [box304.bluehost.com]" 
CLIENT -> SERVER: QUIT 
SERVER -> CLIENT: 221 box304.bluehost.com closing connection 
SMTP connect() failed. 

Я могу видеть, что интерактивный журнал идентифицирует исходный сайт www.fydentry.com, но сценарий PHP выполняется через кли (cron), просто видит имя поля и решает, что это недействительный источник.

Есть ли параметр, который я могу добавить в командную строку, чтобы скрипт работал с адреса сайта? Или что-то, что я могу сделать в PHP-скрипте, чтобы подражать этому? Или это проблема с конфигурацией на стороне bluehost, и я должен попросить их исправить? Или я что-то пропустил здесь, и мне нужно было что-то еще сделать?

На данный момент я взломал вокруг вопроса, вызвав базовый сценарий оболочки в хрон, который, в свою очередь, выполняет это:

file_get_contents("http://www.fydentry.com/my-mailer-script.php"); 

который, кажется, достаточно обмануть все, что скрипт работает от сайт. Но это не похоже на хорошее долгосрочное решение.

ответ

1

У меня была такая же проблема, как и вчера. Я мог только представить себе все проблемы, с которыми сейчас сталкиваются люди.

В любом случае, поскольку вы построили это вокруг класса PHPMailer, попробуйте установить свойство «Helo» на свой почтовый объект. Это сработало для меня.

Из документации (http://phpmailer.worxware.com/?pg=properties):

$ Helo общественных устанавливает SMTP HELO сообщения (по умолчанию $ Hostname)

Надеется, что это помогает!

+0

Это один, спасибо! Я изменил код, чтобы установить свойство Hostname (которое, в свою очередь, также устанавливает Helo), и все возвращается к работе. Что касается Bluehost, который случайно меняет такие вещи без уведомления и не может получить помощь или информацию от кого-либо («мы не поддерживаем сторонние приложения - никакой информации о том, что мы изменили для вас»), да, хорошо. .. –

+0

Отлично, рад помочь! – Jpage

0

Это решить это для меня:

$mail->Hostname = "yourhostname.com"; 
$mail->Helo = $mail->Hostname; 

 Смежные вопросы

  • Нет связанных вопросов^_^