2017-01-05 2 views
0

PHPmail 또는 MODx의 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(); 
+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 extras를 사용하거나 확장하여 수행 할 수 있습니다.