在php上发送电子邮件

时间:2016-03-12 21:48:02

标签: php

我有这个代码来发送电子邮件。我在发送电子邮件时没有错误。

 if(mailSender()){
            echo 'meiled.';
        }else {
        die('not sent');    
      }
    function mailSender() {
        $to = 'info@fcrop.com';
        $subject = 'An Abstract Submitted';
        $message = 'An Abstract Submitted Recently In ICNBA.org';
        $headers = 'Frominfo@icnba.org';
        mail($to, $subject, $message, $headers);
    }

它不会发送电子邮件。

3 个答案:

答案 0 :(得分:3)

您需要更改:

$AllData = "Name=John&Title=CEO&Comment=nothing"; print_r($AllData); // also want to echo only Name or only Comments. $headers = 'Frominfo@icnba.org';

$headers = 'From: info@icnba.org';mail($to, $subject, $message, $headers); ...返回值,否则mailSender不会返回任何内容。

如果没有发送邮件,这可能有很多原因,从php.ini设置到本地MTA配置错误到不匹配的SPF记录。检查邮件日志以查看是否有任何错误。

答案 1 :(得分:2)

因为if表达式计算布尔值,mailSender()不返回任何值。

将此添加到您的函数中:

return mail($to, $subject, $message, $headers);

有关php文档的更多信息:http://php.net/manual/en/control-structures.if.php

答案 2 :(得分:0)

@ user3173842 look standart rfc2822获取更多信息,最后标题行需要\ r \ n \ r \ n http://www.faqs.org/rfcs/rfc2822.html

From: "Joe Q. Public" <john.q.public@example.com> \r\n
To: Mary Smith <mary@x.test>, jdoe@example.org, Who? <one@y.test> \r\n
Cc: <boss@nil.test>, "Giant; \"Big\" Box" <sysservices@example.net> \r\n
Date: Tue, 1 Jul 2003 10:52:37 +0200 \r\n
Message-ID: <5678.21-Nov-1997@example.com> \r\n
\r\n
Hi everyone. is body

这是show example header的答案 对不起,我发现了