当前位置:  开发笔记 > 编程语言 > 正文

邮件返回false

如何解决《邮件返回false》经验,为你挑选了2个好方法。

我目前在工作中使用定制的库.直到这个图书馆工作得非常好.从今天开始,它显然是假的.

库本身它基本上是函数邮件的包装器.它构建了"边界"部分和一切.

由于课程相当大,我不会在这里发布...但我想知道,理论上为什么邮件会返回错误的原因是什么?

SMTP在PHP.ini中设置

发件人设置在标题中

发件人的形式为:sender>

一切都正确发送(正文+标题+主题)

假设mail()在网站上正常工作,但在这个特定页面上却没有.我知道它一定是来自我,但有一个地方开始寻找会很有趣.

哦,是的,图书馆没有证件.

[编辑]刚刚找到一个较小的功能,仍然无法正常工作,我会打印出来然后:

function send_html($from, $email, $subject = "AUCUN", $message, $cc = "", $bcc ="", $priotity = "3") {
    $headers = "";
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

    if (strpos($from, "ourwebsite.com") != false || strpos($from, "rencontresportive.com") != "") {
        $headers .= "From: Ourwebsite.com <" . $from . ">\r\n";
    } else {
        $headers .= "From: " . $from . " <" . $from . ">\r\n";
    }

    $headers .= "X-Sender: <" . $from . ">\r\n";
    $headers .= "X-Priority: " . $priotity . "\r\n";
    $headers .= "X-Mailer: PHP\r\n";
    $headers .= "Return-Path: \r\n";

    if ($cc != "") {
        $headers .= "cc:" . $cc . "\r\n";
    }
    if ($bcc != "") {
        $headers .= "bcc:" . $bcc . "\r\n";
    }
        if (mail($email, $subject, $message, $headers)) {
        return true;
    } else {
        return false;
    }
}

我叫它:

send_html(contact@ourwebsite.com, me@me.com, utf8_decode("the subject"), "

test

");

txyoji.. 16

我刚遇到同样的问题.在php升级之后,mail函数总是返回false.

我用这个小片段来检查出来:

Result was: ' . ( $result === FALSE ? 'FALSE' : 'TRUE') . $result;
echo '
'; echo phpinfo();

解决方案是在我的php.ini中为'sendmail_from'和'sendmail_path'设置一个值.我的案例中的正确值是:

sendmail_from = "no-reply@mydomain.net"
sendmail_path = "/usr/sbin/sendmail -t -i"

(我使用的是带有Zend Server CE的CentOS 5.3.)

您可以使用ini_set()来设置'sendmail_from'的值,但必须在php.ini或http.conf中设置'sendmail_path'var.

http://us3.php.net/manual/en/configuration.changes.modes.php

http://us3.php.net/manual/en/ini.list.php


小智.. 6

我有类似的问题,即使成功收到电子邮件,邮件功能也总是返回false.

我在php配置文件php.ini中找到了,我已经设置好了

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.
sendmail_path = "/usr/sbin/sendmail -t -i -f "care@mydomain.com"

我把它改成了下面

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.
sendmail_path = /usr/sbin/sendmail -t -i -f care@mydomain.com

根据这个,sendmail_from是针对win32的,所以在*unix OS中我们需要设置sendmail_path变量中显示的值.

关心Minesh



1> txyoji..:

我刚遇到同样的问题.在php升级之后,mail函数总是返回false.

我用这个小片段来检查出来:

Result was: ' . ( $result === FALSE ? 'FALSE' : 'TRUE') . $result;
echo '
'; echo phpinfo();

解决方案是在我的php.ini中为'sendmail_from'和'sendmail_path'设置一个值.我的案例中的正确值是:

sendmail_from = "no-reply@mydomain.net"
sendmail_path = "/usr/sbin/sendmail -t -i"

(我使用的是带有Zend Server CE的CentOS 5.3.)

您可以使用ini_set()来设置'sendmail_from'的值,但必须在php.ini或http.conf中设置'sendmail_path'var.

http://us3.php.net/manual/en/configuration.changes.modes.php

http://us3.php.net/manual/en/ini.list.php



2> 小智..:

我有类似的问题,即使成功收到电子邮件,邮件功能也总是返回false.

我在php配置文件php.ini中找到了,我已经设置好了

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.
sendmail_path = "/usr/sbin/sendmail -t -i -f "care@mydomain.com"

我把它改成了下面

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.
sendmail_path = /usr/sbin/sendmail -t -i -f care@mydomain.com

根据这个,sendmail_from是针对win32的,所以在*unix OS中我们需要设置sendmail_path变量中显示的值.

关心Minesh

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有