Я пытаюсь отправить электронное письмо из шаблона MODx, либо используя PHPmail, либо с помощью ModMail класса MODx. Излишне говорить, что ни один из способов не работает.Написать письмо от шаблона MODx
Я пишу код в фрагменте 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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\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,'[email protected]');
$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','[email protected]');
$modx->mail->address('reply-to','[email protected]');
$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();
Просто чтобы ударить вещи из списка, это работает, если вы поместите фрагмент в ресурс? – MeltingDog