2017-01-05 10 views
0

PHPmailまたはMODxのModMailクラスを使用してMODxテンプレートからメールを送信しようとしています。言うまでもなく、どちらの方法も働いていません。MODxテンプレートからメールを送信する

私はMODxスニペットにコードを書き、そのスニペットをテンプレートに含めます。 PHPmailを使用してフォームアクションを省略した場合(フォームが現在のURLに送信されるように)、ページはリフレッシュされますが、メールは送信されません。

ModMailを使用しようとすると、何も起こりません。しかし、私はこのケースでメール送信コードを実際にどのように呼び出すべきかについてはあまりよく分からないので、コードは何もしないで座っているだけです。

<?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である:

これは私のPHPmailの試みである

<?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(); 
+0

リストから除外するだけで、スニペットをリソースに配置するとこれが機能しますか? – MeltingDog

答えて

1

内部メール機能をチェックすることができQuickEmailと呼ばれる余分な利用可能MODXは、あります。

1

私はすべての電子メールをMODXエクストラFormIt経由で処理します。 rtmを見て、走るのはかなり簡単です。フォームを持つときに、あなたがやりたいと思っていることの多くを処理できます(スパム、マルチサブミットなど)。

https://docs.modx.com/extras/revo/formit/formit.tutorials-and-examples/formit.examples.simple-contact-page

新しいソリューションを試してみて、発明しないでください。ほとんどのstufは、既存のMODXエクストラを使用したり拡張したりして行うことができます。

関連する問題