我有一个由GoDaddy在虚拟专用平台上托管的网站,我无法mail()在我的PHP脚本中使该功能正常工作.我正在尝试向用户首次注册我的网站时发送带有验证码的电子邮件,该mail()功能非常适合Gmail地址,但不适用于其他人,如AOL甚至是GoDaddy的电子邮件服务!
我尝试与多个GoDaddy支持代表交谈,但他们在这个问题上并没有真正帮助.我在网上看了看,这似乎是在GoDaddy上托管他们网站的人们非常普遍的问题.当电子邮件发生故障时,我没有收到电子邮件的反弹,因此很难知道发生了什么.
这是我的PHP代码:
$sendtoemail = 'newsignup@aol.com';
$emailsubject = "Please validate your email";
$emailbody = "Validation info, blah blah.";
$emailheader = 'From: admin@example.com' . "\r\n" .
'X-Mailer: PHP' . "\r\n" .
'Reply-To: admin@example.com' . "\r\n" .
'-fadmin@example.com';
mail($sendtoemail, $emailsubject, $emailbody, $emailheader);
Run Code Online (Sandbox Code Playgroud)
当我检查/usr/local/psa/var/log/maillog(通过PuTTY SSH访问)时,我遇到了一些错误:deferral: ./Maildir:_No_such_file_or_directory/
我还在我的主机帐户上激活了反向DNS并创建了一个SPF DNS记录,该记录通过"仅限GoDaddy"发送电子邮件并选中"包含PTR"框以进行DNS查找.这是在GoDaddy的DNS管理器的"区域文件编辑器"的"TXT(文本)"部分下.(希望这对你来说比对我更有意义).
这是一个老线程,但我想我会添加我的经验,以防他们帮助别人.
我和mail()有类似的问题,我调用了GoDaddy的技术服务.我在电话上打了2个小时,经过30次左右的邮件测试()(他们甚至上传了自己的'testmail'脚本),我没有成功收到一封电子邮件(虽然mail()返回的值为1 ,即成功).最终的结果是他告诉我,电子邮件服务器中继是"排队"的.两个小时后,一个技术支持人员和他的"系统管理员"......仍然是同样的问题.
解决方案是使用php库swiftmailer而不是普通的旧mail()函数.使用swiftmailer立即发送电子邮件.希望这有助于其他人!
不用说,我已经改变了主机提供商!
| 归档时间: |
|
| 查看次数: |
23358 次 |
| 最近记录: |