concrete5のレガシーフォームで自動返信メールを設定する
concrete5のフォームブロックでは、標準では自動返信機能はありません。このため問い合わせフォームから送信した方は、『正しく送信されたのか?』と心配になるかもしれません。
イベント機能を使って自動返信させる
標準では用意されていないものの、自動返信メールを送信できるようにプログラムが作られています。on_form_submissionというイベントが用意されています。(イベントはconcrete5の用語で、プログラム実行の途中で、追加の処理を行うものです。WordPress のアクションフックに似た働きです。)
なので、イベント機能を使って、メール返信を自動化してみました。
プログラムコード
controller.php
<?php
namespace Concrete\Package\OunziwFormAutoreply;
use Concrete\Core\Package\Package;
use Concrete\Core\Support\Facade\Events;
class Controller extends Package {
protected $pkgHandle = 'ounziw_form_autoreply';
protected $appVersionRequired = '8.4';
protected $pkgVersion = '0.7';
public function getPackageDescription()
{
return t("Auto Reply for Legacy Form");
}
public function getPackageName()
{
return t("Auto Reply for Legacy Form");
}
public function on_start()
{
Events::addListener('on_form_submission', function($event) {
$formEventData = $event->getArgument('formData');
if (filter_var($formEventData['replyToEmailAddress'],FILTER_VALIDATE_EMAIL)) {
$mh = $this->app->make('mail');
$mh->setSubject('自動返信: フォーム送信ありがとうございました。');
$to_email = $formEventData['replyToEmailAddress'];
$from_email = '[email protected]';
$mailbody = '自動返信: フォーム送信ありがとうございました。' . PHP_EOL;
$mailbody .= PHP_EOL;
$mailbody .= '下記の内容を受け取りました。' . PHP_EOL;
$mailbody .= PHP_EOL;
foreach($formEventData['questionAnswerPairs'] as $questionAnswerPair){
$mailbody .= $questionAnswerPair['question'] . PHP_EOL . $questionAnswerPair['answerDisplay'] . PHP_EOL . PHP_EOL;
}
$mailbody .= PHP_EOL;
$mailbody .= '担当者より、後ほどお返事を差し上げます。今しばらくお待ちくださいませ。' . PHP_EOL;
$mailbody .= PHP_EOL;
$mailbody .= '--' . PHP_EOL;
$mailbody .= '自動計算サイト' . PHP_EOL;
$mailbody .= 'https://calculator.jp/' . PHP_EOL;
$mailbody .= '[email protected]' . PHP_EOL;
$mh->to($to_email);
$mh->from($from_email);
$mh->setBody($mailbody);
$mh->sendMail();
} else {
\Log::addEntry("replyToEmailAddress is empty or invalid.");
}
});
}
}
自動返信メールの内容の編集
ver.0.7では、controller.phpのon_start()メソッドを編集する。
利用者が多くなれば、管理画面から返信内容を設定できるように改良する予定。
活用事例
githubで公開、MITライセンス
Author And Source
この問題について(concrete5のレガシーフォームで自動返信メールを設定する), 我々は、より多くの情報をここで見つけました https://qiita.com/ounziw/items/aa0835ee10d487da601b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .