我正在使用 modMail 类发送自定义电子邮件。我遵循了 MODX 网站上的指南,并使用了我放在片段中的以下代码:
$message = $modx->getChunk('myEmailTemplate');
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'me@example.org');
$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','user@example.com');
$modx->mail->address('reply-to','me@xexample.org');
$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();
该片段已被修改以包含来自自定义块的消息,并且电子邮件地址已替换为正确的地址。该片段发送了一次电子邮件,并且再也没有发送过。我不知道是什么导致了这种阻止它发送电子邮件的行为。
我已经读到使用重置功能会$modx->mail->reset();
重置电子邮件字段并允许再次发送电子邮件,但我觉得这会导致问题。
该片段在页面上被称为未缓存[[!email]]
有谁知道为什么电子邮件没有被发送,即使它工作过一次?