hsm*_*mit 6 php email terminal command-line sendmail
当我使用终端发送电子邮件时,工作正常.我使用以下命令:
echo "Subject: test" | /usr/lib/sendmail -v you@domain.com
Run Code Online (Sandbox Code Playgroud)
但是当我在PHP中尝试这个时:
PHP文档:
<?php bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] ) ?>
Run Code Online (Sandbox Code Playgroud)
我的实施:
<?php mail("you@domain.com", "my topic", "my message contents", "From: me@domain.com"); ?>
Run Code Online (Sandbox Code Playgroud)
,那它不起作用.这是为什么?我想这与PHP的php.ini文件有关?
我配置的全部:
打开php.ini:
nano /etc/php5/apache2/php.ini
取消注释sendmail_path并写入:
sendmail_path = /usr/sbin/sendmail
取消注释sendmail_from并写入:
sendmail_from = me@domain.com
重启apache:
/etc/init.d/apache2 restart
可能是这样的?为了使这个更清楚:我希望PHP能够通过电子邮件发送!
编辑:
/usr/sbin/sendmail成/usr/lib/sendmail(或者反过来)似乎没有任何区别/usr/sbin/sendmail改为/usr/lib/sendmail(或反过来)似乎也没有任何区别Sendmail的日志文件:
root@machine:/var/log# cat mail.warn
root@machine:/var/log# cat mail.err
root@machine:/var/log# cat mail.log
Mar 20 10:17:09 machine sendmail[12249]: p2K9H2R9012249: from=root, size=0, class=0, nrcpts=1, relay=root@localhost
Mar 20 10:17:20 machine sendmail[12253]: p2K9HImw012253: from=root, size=0, class=0, nrcpts=0, relay=root@localhost
Mar 20 10:17:25 machine sendmail[12255]: p2K9HOAC012255: from=root, size=0, class=0, nrcpts=1, relay=root@localhost
Mar 20 10:20:00 machine sendmail[12277]: p2K9K09k012277: from=root, size=14, class=0, nrcpts=3, msgid=<201103200920.p2K9K09k012277@machine.domain.com>, relay=root@localhost
Mar 20 10:20:00 machine sm-mta[12279]: p2K9K0Ge012279: <-r@machine.domain.com>... User unknown
Mar 20 10:20:00 machine sendmail[12277]: p2K9K09k012277: to=-r, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=90014, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Mar 20 10:20:00 machine sm-mta[12279]: p2K9K0Ge012279: from=<root@machine.domain.com>, size=290, class=0, nrcpts=2, msgid=<201103200920.p2K9K09k012277@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:20:00 machine sm-mta[12279]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:20:02 machine sm-mta[12279]: p2K9K0Ge012279: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:02, xdelay=00:00:02, mailer=esmtp, pri=60290, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300612802 w59si3196382eeh.92)
Mar 20 10:20:02 machine sm-mta[12279]: STARTTLS=client, relay=aspmx.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:20:04 machine sm-mta[12279]: p2K9K0Ge012279: to=<you2@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:04, xdelay=00:00:02, mailer=esmtp, pri=60290, relay=aspmx.l.google.com. [74.125.79.27], dsn=2.0.0, stat=Sent (OK 1300612804 p50si3196335eei.44)
Mar 20 10:20:04 machine sendmail[12277]: p2K9K09k012277: to=you2@domain.com,you@domain.com, ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:04, mailer=relay, pri=90014, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9K0Ge012279 Message accepted for delivery)
Mar 20 10:20:04 machine sendmail[12277]: p2K9K09k012277: p2K9K09l012277: DSN: User unknown
Mar 20 10:20:04 machine sm-mta[12279]: p2K9K0Gg012279: from=<>, size=1921, class=0, nrcpts=1, msgid=<201103200920.p2K9K09l012277@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:20:05 machine sm-mta[12279]: p2K9K0Gg012279: to=<root@machine.domain.com>, delay=00:00:01, xdelay=00:00:01, mailer=local, pri=31921, dsn=2.0.0, stat=Sent
Mar 20 10:20:05 machine sendmail[12277]: p2K9K09l012277: to=root, delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=31038, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9K0Gg012279 Message accepted for delivery)
Mar 20 10:25:11 machine sendmail[12321]: p2K9PBC3012321: from=root, size=14, class=0, nrcpts=1, msgid=<201103200925.p2K9PBC3012321@machine.domain.com>, relay=root@localhost
Mar 20 10:25:11 machine sm-mta[12323]: p2K9PBLe012323: from=<root@machine.domain.com>, size=318, class=0, nrcpts=1, msgid=<201103200925.p2K9PBC3012321@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:25:11 machine sm-mta[12323]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:25:12 machine sm-mta[12323]: p2K9PBLe012323: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=30318, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300613112 u12si3204796eeh.99)
Mar 20 10:25:12 machine sendmail[12321]: p2K9PBC3012321: to=you@domain.com, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30014, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9PBLe012323 Message accepted for delivery)
Mar 20 11:00:17 machine sendmail[12567]: p2KA0HX9012567: from=root, size=20, class=0, nrcpts=1, msgid=<201103201000.p2KA0HX9012567@machine.domain.com>, relay=root@localhost
Mar 20 11:00:17 machine sm-mta[12568]: p2KA0HNn012568: from=<root@machine.domain.com>, size=324, class=0, nrcpts=1, msgid=<201103201000.p2KA0HX9012567@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 11:00:17 machine sm-mta[12568]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 11:00:18 machine sm-mta[12568]: p2KA0HNn012568: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=30324, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300615218 w59si3268114eeh.65)
Mar 20 11:00:18 machine sendmail[12567]: p2KA0HX9012567: to=you@domain.com, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30020, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2KA0HNn012568 Message accepted for delivery)
Mar 20 11:16:23 machine sendmail[12675]: p2KAGNg8012675: from=www-data, size=188, class=0, nrcpts=0, msgid=<201103201016.p2KAGNg8012675@machine.domain.com>, relay=www-data@localhost
root@machine:/var/log#
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我找到了解决方案!
正如我所料,它是php.ini中的配置.
在php.ini中:
sendmail_path = /usr/sbin/sendmail **-t -i**
现在,我们也试着理解为什么,因为我在这个站点找到-t 然后我在php.ini文件中找到了-i.-t和-i是什么意思?
-t
从邮件标头中提取收件人.这些将添加到命令行中指定的任何收件人.对于2.1之前的Postfix版本,此选项要求在命令行上未指定收件人地址.
-i
从标准输入读取消息时,不要仅使用a处理行.字符作为输入的结尾.
希望我能帮助那些遇到类似问题的人.
可能是什么情况?为了更清楚地说明这一点:我希望 PHP 能够发送电子邮件!
这种情况或者更好,因为在您的情况下,mail()功能和 sendmail 是两双不同的鞋子。它们本身彼此不相关。
因此,仅仅因为您可以使用 sendmail 程序发送电子邮件,并不意味着 PHPmail()函数也可以发送电子邮件。
您面临的是 PHP 安装的配置问题。默认情况下,PHP 非常适合发送电子邮件,但 PHP 无法了解所有设置,因此如果mail()失败,您需要检查是否已正确配置 PHP 来发送电子邮件。
mail()PHP 手册:函数是了解更多配置内容、获取大量注释和通知以及相关信息的良好开端。
第一个健全性检查 - 正如其他人已经评论过的 - 是检查函数的返回值mail()。如果为 false,则 PHP 知道发送邮件失败。
如果这是真的,并且您仍然没有收到电子邮件(发出),那么其他一些组件对于进一步传输电子邮件没有帮助。您需要检查整个传输链 - 只是为了使其粗体 - 您的整体配置中可能存在多个错误,这些错误会阻止您通过 PHP 发送电子邮件,即使您能够从 shell 发送一些电子邮件。
如果这对您来说太复杂,我建议您与系统管理员联系,他们可以帮助您解决问题。
顺便说一句,您可以编写自己的包装器并使用 shell 命令发送电子邮件:shell_exec,小心。
| 归档时间: |
|
| 查看次数: |
18835 次 |
| 最近记录: |