为什么SwiftMail API for PHP无法在HostGator上运行?他们的技术支持说使用mail()命令,并且到端口25的套接字连接不会像他们的共享主机方案那样工作。我抱怨说,当你谷歌如何发送邮件附件(),人们告诉你使用SwiftMail。 我需要通过电子邮件发送文件附件。
我的代码在A2Hosting上运行得很好,但不是HostGator。在API中,我将在端口25上发送到localhost,不使用身份验证,不使用SSL,并使用此主机上存在的有效电子邮件地址(假装为example.com) - noreply@example.com。 / p>
我得到的错误是:
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上工作,请分享您的所作所为。
答案 0 :(得分:13)
您可以尝试使用Swift_MailTransport
代替Swift_SmtpTransport
,它将在幕后使用原生mail()
来电。
我没有使用HostGator的经验,但如果他们的支持说系统允许通过mail()
发送,那么这应该可以正常工作。
答案 1 :(得分:4)
我做了一些测试,最后找到了答案。它确实有效,但这是如何:
答案 2 :(得分:2)
如果您尝试发送到CPanel中的域,即使您在其他地方托管了电子邮件,他们的邮件服务器也会尝试将邮件中继到本地邮箱,而不是查询域的MX记录
修复方法是告诉他们从exim邮件服务器配置文件中的localhost选项中删除您尝试发送电子邮件的域。
答案 3 :(得分:1)
我正在使用SwiftMail for PHP和hostgator,Swift_SmtpTransport通过ssl连接到gmail。起初我得到了“连接无法与主机smtp.gmail.com建立[连接拒绝#111]”。使用Swift_MailTransport确实有效,但我不喜欢这个解决方案,因为它会使用hostgator的邮件服务器;我想使用谷歌应用程序电子邮件帐户发送电子邮件。
我不得不要求HostGator的技术支持将SMTP防火墙中的cPanel用户列入白名单,然后一切运行良好。
答案 4 :(得分:0)
使用此主机上存在的有效电子邮件地址(假装它是 example.com) - noreply@example.com。
你确定邮件服务器在同一个盒子里吗?你是否试图挖掘example.com的mx记录
答案 5 :(得分:0)
尝试使用亚马逊的简单邮件服务发送电子邮件时出现此错误。最终它证明了我使用AmazonSES的凭据是错误的。一旦我理解了这一切,我就会解决所有问题。
顺便说一句,我使用的是PHP的Swift_SmtpTransport