邮件()没有新的服务器上运行(mail() doesn't work on new serv

2019-08-16 23:22发布

可它是一个愚蠢的问题,但我找不到为什么PHP的邮件功能不工作我有一个nginx的服务器在Debian挤压的原因,我最近搬到了它。 我想简单的邮件执行,但它返回false。

if(mail('test@email.com', 'test-subject', 'test-text-blablabla'))
   echo 'ok';
else
   echo 'bad';

我可以用它做什么?

谢谢。

php.ini中的我的邮件部分:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com 

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =

Answer 1:

好吧,我做到了。 如何我把它与nginx的服务器Debian的挤压:(所有命令我从root用户执行)

首先,你需要安装sendmail的

apt-get install sendmail

接下来,您必须配置该文件,这是比我想象的更容易

sendmailconfig 

好了,接下来我做是php.ini配置(我不是一个伟大的管理员,我是一个初学者,所以我不知道是否有必要或没有。)

我设置

sendmail_path= /usr/sbin/sendmail -t -i

好了,从这一刻开始,从理论上说,你可以发送电子邮件,但对我来说,它导致504 HTTP错误网关超时。 但是,当我发现晚得多的电子邮件已经来到了邮箱。 所以,我测试的PHP文件是:

<?php 
   mail('myWorkingEmail@example.com', 'test', 'you done that');
   echo 'ok'; // I use this to check that script is end the execution 
?>

这是相当清楚的。

接下来的问题是504错误。 我去日志文件

nano /var/log/mail.log

在这里,我发现这个错误(这不是唯一的一个错误,但是,一个是负责504错误):

sm-msp-queue[***]: My unqualified host name (myhostname) unknown; sleeping for retry

然后,找到我怎么能解决这个烦恼: http://forums.fedoraforum.org/archive/index.php/t-85365.html该网页上的最后一个注释。

或者换句话说我做了这个:

nano /etc/hosts

并在该文件我改变主机的顺序

127.0.0.1 my_ip localhost myhostname 

保存,完成。 打开你的测试php文件,没有任何504错误和电子邮件是收入向您发送电子邮件的邮件功能不在话下。 正如我说的,我是一个新手,这可能不适合你的工作,但对我来说,无论如何努力。 这不是端配置,当然。 希望你觉得它有用。



文章来源: mail() doesn't work on new server