2013-10-02 4 views
5

Я пытаюсь создать тестовый сайт, который обрабатывает PayPal-платеж. Я пытаюсь отправить пользователям электронное письмо с помощью PHP SwiftMailer после успешной оплаты (это мой IPN).PHP SwiftMailer Не удалось выполнить проверку подлинности на SMTP-сервере

Вот мой код для транспорта:

 $transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, 'ssl') 
      ->setUsername('[email protected]') 
      ->setPassword('xxxx');  

    $mailer = Swift_Mailer::newInstance($transport); 

Я пытался использовать GoogleMail и другой электронной почты, который размещается под общим сервером, и оба имеют проблемы выдавая ошибку.

К сожалению, я получаю эту обычную ошибку:

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "[email protected]" using 2 possible authenticators' in /home/xxx/public_html/paypal/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:184 

    Stack trace: 

    #0 /home/xxx/public_html/paypal/lib/classes/Swift/Transport/EsmtpTransport.php(312): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport)) 

    #1 /home/xxx/public_html/paypal/lib/classes/Swift/Transport/AbstractSmtpTransport.php(120): Swift_Transport_EsmtpTransport->_doHeloCommand() 

    #2 /home/xxx/public_html/paypal/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() 

    #3 /home/xxx/public_html/paypal/ipn.php(113): Swift_Mailer->send(Object(Swift_Message)) 

    #4 /home/mctikudo/public_html/paypal/ipn.php(46): sendMail(Resource id #3, Array) 

    #5 {main} thrown in /home/xxx/public_html/paypal/lib/classes/Swift/Transport/Esmtp/AuthHandler.php on line 184 

Я сделал некоторые исследования и пытался несколько подход в условиях моего транспорта. Но все же ничего не работает. Пока я просто не пытался разместить свой IPN-код на другом сервере под другой хостинговой компанией и, что удивительно, он работает. Тот же код с другого.

Вот почему я предполагаю, что что-то на другом сервере должно быть установлено или что-то в этом роде.

Есть ли что-то, что мне нужно, чтобы убедиться, что на моем сервере включена работа SwiftMailer?

+0

Некоторые домены не позволяют отправлять письма другим доменам, отправлять их можно только по адресу «[email protected]». Проверьте, не здесь ли это. Например, awardpace.net. – Jinandra

+3

Я сделал это, применив ответ здесь: http: // stackoverflow.com/a/7170687/882773 – Atasha

+1

Я сделал эту работу, выполнив предложение здесь: http://stackoverflow.com/questions/7170607/hostgator-wont-send-mail-via-php-swiftmail-api/7170687#7170687 – Atasha

ответ

18

Это может быть старым, но кто-то может получить помощь через это. Я тоже столкнулся с той же проблемой и получил почту в своем аккаунте gmail, заявив, что кто-то пытается взломать вашу учетную запись через почтовый клиент или другой сайт. THEN Я искал и обнаружил, что выполнение ниже разрешит эту проблему.

Перейдите на страницу https://accounts.google.com/UnlockCaptcha и откройте свою учетную запись для доступа через другие носители/сайты.

UPDATE: 2015

Кроме того, вы можете попробовать это, Перейти к https://myaccount.google.com/security#connectedapps В нижней части, в направлении вправо есть опция «Разрешить менее безопасные приложения». Если это «ВЫКЛ», включите его, сдвинув кнопку.

+0

Спасибо! Это сработало! – Robert

+0

Это сработало и для меня. – b85411

5

Как уже говорилось, это может быть старым, но вы можете попробовать и разрешить gmail отправлять почту через менее безопасные приложения.

https://www.google.com/settings/security/lesssecureapps

Это сделало работу для меня, и у меня была такая же проблема.

3

Я знаю, что это старый, но, надеюсь, это указывает на кого-то в правильном направлении. У меня была такая же проблема при использовании комбинации Mandrill и Swiftmailer.

Моя проблема заключалась в том, что сервер останавливал SMTP-сообщения с порта 587, и это было связано с настройками FKA SMTP Tweak, которые были на моем сервере.

Итак, если у вас есть Cpanel и вы можете получить доступ к WHM, попробуйте просмотреть настройки своей почты под трюки, чтобы узнать, ограничена ли исходящая SMTP-почта. Другой вариант заключается в том, что, возможно, ваш сервер считает порт подозрительным. Попробуйте изменить порт, я обнаружил, что у моей хостинговой компании есть список подходящих портов.

+2

Принял меня целый день, чтобы понять это. Когда эта функция (FKA SMTP Tweak) включена, перенаправление исходящих SMTP-соединений на локальный почтовый сервер. root, exim и mailman по-прежнему разрешено делать прямые подключения. –

+0

Изменено, но пока не помогло. – PlanetUnknown

+0

Отключение FKA SMTP Tweak сработало. –

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