2011-08-24 30 views
5

Có lý do gì khiến API SwiftMail cho PHP không chạy trên HostGator không? Hỗ trợ kỹ thuật của họ cho biết sử dụng lệnh mail() và các kết nối socket đến cổng 25 sẽ không hoạt động giống như trên kế hoạch lưu trữ được chia sẻ của họ. Tôi phàn nàn và nói rằng khi bạn google làm thế nào để gửi file đính kèm với mail(), mọi người nói với bạn để sử dụng SwiftMail. Tôi cần gửi tệp đính kèm kèm theo email.HostGator sẽ không gửi thư qua PHP API SwiftMail

Mã của tôi hoạt động tốt trên A2Hosting, nhưng không hoạt động trên HostGator. Trong API, tôi đang gửi tới localhost trên cổng 25, không sử dụng xác thực, không sử dụng SSL và sử dụng địa chỉ email hợp lệ tồn tại trên máy chủ lưu trữ này (giả vờ là example.com) - [email protected]

Các lỗi tôi nhận được là:

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 

Nếu bạn đã nhận được SwiftMail API để làm việc trên HostGator, hãy chia sẻ những gì bạn đã làm.

Trả lời

13

Bạn có thể thử sử dụng Swift_MailTransport thay vì Swift_SmtpTransport sẽ sử dụng lệnh gọi sau mail() gốc đằng sau hậu trường.

Tôi không có kinh nghiệm với HostGator nhưng nếu sự hỗ trợ của họ cho biết hệ thống cho phép gửi qua mail() điều này sẽ hoạt động tốt.

4

Tôi đã chạy một số thử nghiệm và tìm thấy câu trả lời cuối cùng. Nó không làm việc, nhưng đây là cách:

  • sử dụng cổng 25, không phải là một cảng thay thế
  • không sử dụng SSL/TLS
  • sử dụng một người sử dụng/pass là không cần thiết, nhưng sẽ làm việc có hoặc không có nó
  • không sử dụng 'localhost' - sử dụng tên miền nơi tài khoản thư tồn tại, cho dù đó là miền gốc, miền phụ, miền phụ hoặc miền trỏ hướng
  • đảm bảo rằng tài khoản email gửi tồn tại và tồn tại trong ngữ cảnh miền bạn muốn. Ví dụ: tôi có thể có example1.com làm miền gốc và example2.com làm miền bổ trợ cho dự án của tôi. Vì vậy, trong mã dự án của tôi, tôi sẽ tạo một tài khoản [email protected] trong cPanel và sau đó sử dụng nó làm địa chỉ email gửi với API SwiftMailer.
+0

Điều này khá nhiều sẽ xảy ra trên bất kỳ tài khoản lưu trữ nào. Bạn có thể gỡ lỗi bằng cách gửi email đến noreply (không có domain.com vào cuối), nhưng nó sẽ không bay trên tài khoản lưu trữ và bạn sẽ cần phải không chỉ thêm domain.com mà còn tạo tài khoản thư. – Volomike

+0

bất kỳ ý tưởng nào tôi không thể gửi thư trên hostgator bằng cách sử dụng thư nhanh nhưng tôi có thể gửi thư từ máy chủ cục bộ bằng máy chủ gmail smtp, tôi nghĩ có lỗi trong $ transport = Swift_MailTransport :: newInstance (Tên máy chủ thư đi, 25); trong dòng này, đầu ra trả về false. – shruti

0

sử dụng một địa chỉ email hợp lệ mà không tồn tại trên máy chủ này (giả vờ đó là example.com) - [email protected]

bạn có chắc là máy chủ thư nằm trên cùng một hộp không? bạn đã cố gắng khai thác bản ghi mx của example.com

0

Tôi đang sử dụng SwiftMail cho PHP với máy chủ lưu trữ với Swift_SmtpTransport kết nối với gmail qua ssl. Lúc đầu, tôi đã nhận được một "Kết nối không thể được thiết lập với máy chủ smtp.gmail.com [Kết nối từ chối # 111]". Sử dụng Swift_MailTransport đã làm việc, nhưng tôi không thích giải pháp đó vì nó sẽ sử dụng mail server của hostgator; Tôi muốn sử dụng tài khoản email của ứng dụng google để gửi email.

Tôi phải yêu cầu hỗ trợ kỹ thuật của HostGator để đưa người dùng cPanel vào danh sách trắng trong tường lửa cho SMTP và sau đó mọi thứ hoạt động tốt.

2

Tắt nếu bạn đang cố gắng gửi miền trong CPanel, ngay cả khi bạn đã lưu trữ email ở nơi khác, máy chủ thư của họ cố chuyển tiếp thư tới hộp thư cục bộ thay vì tham khảo bản ghi MX cho miền.

Khắc phục là yêu cầu họ xóa miền bạn đang cố gửi email từ tùy chọn lưu trữ cục bộ trong tệp cấu hình máy chủ thư exim của họ.

0

Tôi gặp lỗi này khi cố gửi email bằng Dịch vụ thư đơn giản của Amazon. Cuối cùng hóa ra là thông tin đăng nhập của tôi để sử dụng AmazonSES là sai. Một khi tôi đã nhận được điều này đúng mọi thứ giải quyết cho tôi.

Bằng cách tôi đang sử dụng Swift_SmtpTransport của PHP

Các vấn đề liên quan