0

在我的服务器上,使用 MODx(2.2 版)发送电子邮件失败。它可能与 SMTP 一起工作,但原则上它也应该在没有 SMTP 的情况下工作,因为像下面这样的脚本可以工作。

脚本:

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

你能帮我找出这种不当行为的原因和/或解决这个问题吗?

编辑

要回答以下问题:

我不会尝试向网站用户发送任何精美的电子邮件。我只是在尝试非常基本的东西,比如通过电子邮件重置登录名和密码。

我尝试使用 quickemail进行调试。输出是:

System Settings (used if property is missing):
emailsender System Setting: xxx@xxx.xx
site_name System Setting: MODX Revolution
Properties (from parameters, property set, or snippet default properties:
Tpl chunk name:
subject:
to:
fromName:
replyTo:
emailSender:
allowHtml: 1
message:
Final Values (actually used when sending email):
subject: Default Subject
to: xxx@xxx.xx
fromName: xxx@xxx.xx
replyTo: xxx@xxx.xx
emailSender: xxx@xxx.xx
allowHtml: 1
Message Body: Default Message
Send Failed
Mailer error info: Could not instantiate mail function.
Server Debug Information:

我想我已经在核心安装中使用了 MOD-Mail。不是吗?

我的邮件服务器使用 qmail。我只是尝试了上面没有$from值的脚本,它起作用了。但是,MODx 仍然无法发送电子邮件。

4

2 回答 2

0

您将需要检查 MODx 使用的默认设置是否与您的服务器PHP mail()配置相匹配。

MODx 使用的 PHP 邮件类位于core/model/modx/mail/phpmailer/class.phpmailer.php。如果它们不匹配,我不建议更改类,而是使用可以在 MODx 管理器中的系统 > 系统设置下启用和配置的 SMTP

信息:默认情况下,MODx 使用/usr/sbin/sendmail -oi -f发送电子邮件。这很常见,但不适用于所有 Web 服务器。

于 2012-07-15T18:50:03.650 回答
-1

当您使用mail-function 时,您使用的是本机(标准)PHP 邮件类。

Modx revo 有它自己的,但你根本没有使用这个类。这是默认安装的,所以它应该可以工作。阅读此 wiki 文章以了解该类的用法:http ://rtfm.modx.com/display/revolution20/modMail

但是,如果发送电子邮件不起作用,这与 Modx 无关,据我所知,您的代码是有效的。这是一个服务器/PHP 设置问题。

于 2012-07-16T08:36:22.203 回答