我一直在尝试发送电子邮件进行注册,邀请等.
在本地开发中,电子邮件将被发送.但是,一旦在服务器上没有邮件到达.
我安装了postfix.我试图设置一个邮件服务器,但放弃了.所以目前,如果我输入终端
peter# mail example@example.com
Run Code Online (Sandbox Code Playgroud)
电子邮件到了.但是,这不会发送电子邮件:
$res = mail('example@example.com', 'subj', 'bodddd');
Run Code Online (Sandbox Code Playgroud)
不仅如此,回声$res
也没有给出任何东西.既不是true
也不是false
.
我该怎么做才能让它发挥作用?
感谢名单
Old*_*ool 18
根据您上面的评论,看起来您的sendmail路径错误或在您的php.ini中注释掉了.它应该是这样的:
sendmail_path = /usr/sbin/sendmail -t -i
Run Code Online (Sandbox Code Playgroud)
如果您不确定sendmail二进制文件所在的位置,可以使用以下命令找到它:
whereis sendmail
Run Code Online (Sandbox Code Playgroud)
小智 6
在共享主机上对我有用的解决方案是-f
在mail
函数中使用附加参数。代替 ...
mail($to, $subject, $body, $headers);
我不得不使用...
mail($to, $subject, $body, $headers, " -fvaliduser@validdomain.com");
根据php 手册,附加参数作为附加参数提供给 sendmail。请注意,-f
电子邮件和电子邮件之间缺少空格似乎是故意的。
就我而言,在一台特定主机上,我无法访问 postfix/sendmail 日志。原始命令返回 true 并且 cpanel 日志显示它已被接受交付,但收件人从未收到它。
归档时间: |
|
查看次数: |
28462 次 |
最近记录: |