HostGator не будет отправлять почту через PHP SwiftMail API - PullRequest
5 голосов
/ 24 августа 2011

Есть ли причина, по которой SwiftMail API для PHP не будет работать на HostGator?Их техническая поддержка сообщила, что использует команду mail () и что сокет-соединения с портом 25 не будут работать так же в их плане общего хостинга.Я пожаловался и сказал, что когда вы гугляете о том, как отправлять вложения с помощью mail (), люди советуют вам использовать SwiftMail. Мне нужно отправить вложение файла с электронной почтой.

Мой код прекрасно работает на A2Hosting, но не на HostGator.В API я отправляю на локальный хост через порт 25, не используя аутентификацию, не используя SSL и используя действующий адрес электронной почты, который существует на этом хосте (притворимся, что example.com) - noreply@example.com.

Ошибка, которую я получаю:

Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (Connection refused) in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php on line 243

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host localhost [Connection refused #111]' in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php:245 Stack trace: #0 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php(80): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/AbstractSmtpTransport.php(111): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Mailer.php(84): Swift_Transport_AbstractSmtpTransport->start() #3 /home/user/public_html/mywebsite/mailer.php(34): Swift_Mailer->send(Object(Swift_Message)) #4 /home/user/public_html/mywebsite/mailer.php(146): Mailer->sendMail() #5 {main} thrown in /home/user/public_html/mywebsite/addons/swiftmail-4.0.3/lib/classes/Swift/Transport/StreamBuffer.php on line 245

Если у вас есть SwiftMail API для работы с HostGator, пожалуйста, поделитесь тем, что вы сделали.

Ответы [ 6 ]

13 голосов
/ 24 августа 2011

Вы можете попробовать использовать Swift_MailTransport вместо Swift_SmtpTransport, который будет использовать собственный вызов mail() за кулисами.

У меня нет опыта работы с HostGator, но если их поддержка говорит, что система позволяет отправлять черезmail() это должно работать нормально.

4 голосов
/ 24 августа 2011

Я провел несколько тестов и наконец нашел ответ.Это работает, но вот как:

  • использовать порт 25, а не альтернативный порт
  • не использовать SSL / TLS
  • с использованием user / pass ненеобходимо, но будет работать с ним или без него
  • не используйте 'localhost' - используйте имя домена, где существует учетная запись почты, будь то корневой домен, домен расширения, поддомен или припаркованный домен
  • убедитесь, что отправляющая учетная запись электронной почты существует и существует в нужном вам доменном контексте.Например, у меня может быть example1.com в качестве корневого домена, а example2.com в качестве домена дополнения для моего проекта.Итак, в своем коде проекта я создам учетную запись noreply@example2.com в cPanel, а затем использую ее в качестве адреса электронной почты для отправки с API SwiftMailer.
2 голосов
/ 02 января 2014

Оказывается, если вы пытаетесь отправить на домен, который находится на вашем CPanel, даже если ваша электронная почта размещена где-то еще, их почтовый сервер пытается переслать сообщение в локальный почтовый ящик вместо того, чтобы обращаться к записям MX для домена.

Исправление состоит в том, чтобы сказать им, чтобы они удалили домен, который вы пытаетесь отправить по электронной почте, из их опции localhost в файле конфигурации почтового сервера exim.

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

Я использую SwiftMail для PHP с hostgator с Swift_SmtpTransport, соединяющимся с gmail через ssl.Сначала я получал «Не удалось установить соединение с хостом smtp.gmail.com [Соединение отказано # 111]».Использование Swift_MailTransport работало, но мне не понравилось это решение, потому что оно использовало бы почтовый сервер hostgator;Я хотел использовать учетную запись электронной почты приложений Google для отправки электронной почты.

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

0 голосов
/ 17 сентября 2014

Я получил эту ошибку при попытке отправить электронную почту с помощью Amazon Simple Mail Service. В конечном итоге оказалось, что мои учетные данные для использования AmazonSES были неверными. Как только я понял это правильно, все решено для меня.

Кстати, я использовал PHP Swift_SmtpTransport

0 голосов
/ 24 августа 2011

используя действительный адрес электронной почты, который существует на этом хосте (представьте, что он example.com) - noreply@example.com.

вы уверены, что почтовый сервер находится на том жекоробка?Вы пытались копать mx-запись на example.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...