Есть ли причина, по которой 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()
это должно работать нормально.
Я провел несколько тестов и наконец нашел ответ. Он работает, но вот как это сделать:
Оказывается, если вы пытаетесь отправить домен, который находится в вашей 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