【问题标题】:Use PEAR on Fedora在 Fedora 上使用 PEAR
【发布时间】:2018-02-08 22:52:59
【问题描述】:

我正在尝试使用 PEAR 在 Fedora 服务器机器上发送电子邮件,但无处可去。

以下是我尝试使用的代码。代码中的电子邮件身份验证设置不是实际的,但我使用的信息是从我的电子邮件客户端配置中提取的,所以应该可以工作。

我也在尝试获取调试信息以了解发生了什么。将 'debug' 设置为 'true' 是否足够或是否需要其他东西?在哪里可以找到调试日志信息?

很多问题,但我希望有人能指引我正确的方向。

我也尝试了 PHPMailer,但没有成功。我有这种感觉,机器上的某些配置正在阻塞...

还有一件事,这个确切的代码可以在 Ubuntu 机器上运行,所以我知道它可以工作。我正在尝试将所有服务从 Ubuntu 机器转移到 Fedora 机器。

<?php

require_once "Mail.php";

$from = "demo@demo.com";
$recipients = 'demo@demo.com';
$headers["From"] = $from;
$headers["To"] = 'demo@demo.com';
$headers["Reply-To"] = $from;
$headers["Subject"] = 'Testing';
$headers["MIME-Version"] = "1.0";
$headers["Content-Type"] = "text/html; charset=UTF-8";

$body = 'Testing';

$smtpinfo["host"] = "mail.demo.com";
$smtpinfo["port"] = "587";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = "demo@demo.com";
$smtpinfo["password"] = "password";
$smtpinfo["debug"] = true;

$mail_object = Mail::factory("smtp", $smtpinfo);
$mail_object->send($recipients, $headers, $body);

if (PEAR::isError($mail_object)) {
    $ret['success'] = false;
    $ret['msg'] = 'Message delivery failed...';
} else {
    $ret['success'] = true;
    $ret['msg'] = 'data is valid';
}

return $ret;

?>

谢谢

【问题讨论】:

    标签: fedora pear


    【解决方案1】:

    所以,经过几个小时的测试,我已经解决了这个问题。这个website 提供了有关如何在命令行中获取调试信息的指导。

    在命令行测试 PHP 代码并确认可以发送消息后,我尝试从网页发送电子邮件;失败了。

    所以,现在我认为这个问题可能与 Web 服务器有关,于是我在 Stack Overflow 上找到了这个 question。其中的解决方案立即解决了问题。具体来说,按照接受的解决方案中的描述执行以下操作:

    $ sestatus -b | grep sendmail
    httpd_can_sendmail    off
    
    $ restorecon /usr/bin/sendmail
    $ setsebool -P httpd_can_sendmail 1
    

    希望这可以帮助其他人面临一些问题。

    【讨论】:

    • 数以千计的积分用于正确设置布尔值而不是仅仅禁用selinux!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2013-10-17
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多