我正在尝试从MODx模板发送电子邮件,只需使用PHPmail或使用MODx的ModMail类。不用说两种方式都不起作用。
我正在将代码写入MODx代码段,并在我的模板中包含该代码段。使用PHPmail时,省略了表单操作(以便表单提交到当前URL),页面刷新但没有发送邮件。
当我尝试使用ModMail时,根本没有任何事情发生。但是我不太确定在这种情况下如何实际调用发送邮件代码,因此代码只是坐在那里什么都不做。
这是我的PHPmail尝试:
<?php
$to = $_POST['email'];
$name = $_POST['name'];
$query = $_POST['message'];
$subject = "Query from " . $name;
$message = "You're received a query from " . $name . ", their email address is " . $to . ".\r\nThey said:\r\n" . $query;
$headers = 'From: MyPersonalEmail@gmail.com' . "\r\n" .
'Reply-To: MyPersonalEmail@gmail.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
echo $to;
echo $name;
echo $query;
echo $subject;
echo $message;
echo $headers;
mail($to, $subject, $message, $headers);
?>
这是ModMail:
<?php
$message = $_POST['message'];
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'MyPersonalEmail@gmail.com');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','MyPersonalEmail@gmail.com');
$modx->mail->address('reply-to','MyPersonalEmail@gmail.com');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
答案 0 :(得分:1)
有一个名为QuickEmail的MODX附加功能可以检查内部邮件功能。
答案 1 :(得分:1)
我通过MODX额外的FormIt处理所有电子邮件。看看它的rtm,它很容易运行。它可以处理你想要做的很多东西,并在有表格时防止(比如垃圾邮件,多次提交)。
不要试图发明一种新的解决方案。大多数stuf可以通过使用或扩展现有的MODX附加功能来完成。