在Fedora上使用PEAR

时间:2018-02-05 17:28:23

标签: fedora pear

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

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

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

很多人要求,但我希望有人能指引我朝着正确的方向前进。

我也试过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;

?>

谢谢

1 个答案:

答案 0 :(得分: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

希望这有助于其他人面对某些问题。