Intereting Posts
Отправить письмо с приложением через PHPMailer imagepng () и прозрачность в библиотеке GD с PHP PHP, Объединение массивов с помощью общих ключей innerHTML в xPath? Длина соли в CRYPT_BLOWFISH Как получить .htaccess для перенаправления из поддомена подстановочной страницы в папку поддомена подстановочных знаков Imagecreatefromjpeg возвращает черное изображение после изменения размера Почему я могу просмотреть исходный код PHP в Интернете? Проблема php simplexml при чтении атрибута, который имеет название «column -:» в его имени Как получить фактический URL-адрес запроса в Apache / PHP, если он не существует, и пользователь перенаправляется на страницу ошибок 404? Регистрация Magento возвращает «Фамилия не может быть пустым» База данных часовых поясов PHP является поврежденной ошибкой php 5.5.5 не работает с Apache 2.4.7 Автоопределение наличия заголовков CSV в файле CURL Получить запрос с параметром, содержащим URL-адрес GET

HostGator не отправит почту через PHP SwiftMail API

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

Мой код отлично работает на A2Hosting, но не HostGator. В API я отправляю localhost на порт 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, поделитесь тем, что вы сделали.

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

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

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

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

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

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

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

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

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

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

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

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