EC-CUBE3の注文メール、お問い合わせのメールはお客様に送る内容と同じものをBCCで管理人に送っているので、マスター情報に入れてある管理人メールアドレスに届いたメールに返信をしても自分のところに戻ってきてしまいます。
これを返信したときにお客様へのメールにすぐできるようにする方法です。
速習!返信メールカスタム場所
\src\Eccube\Service\MailService.php
開いてみるとわかる通りお客様宛メールはここで一括管理しています。
適当にいじれば何とかなります。
返信メール宛先変更詳細
この3件のメールを修正します。
・お問い合わせ受付メール送信開始
・受注メール送信開始
・受注管理通知メール送信開始
どれも、管理人に送られてきたメールの宛先をお客様のメアドにするので、管理人がメールを開いて返信をすることで簡単にお客様にメールを送ることができます。
全体での概要
上記3つ以外のところでもカスタマイズしたい場合はこちらを参考に
①各部分で
->setBcc($this->BaseInfo->getEma~~~
をコメントアウト
②直近の
$count = $this->app->mail($message);
の下に、直上の$messageをコピペして
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
Bcc項目を削除
③次の項目の内容を入れ替えます
->setFrom()
->setTo()
->setReplyTo(
->setReturnPath()
④その下に1行追加
$count = $this->app->mail($message);
お問い合わせ受付メール送信
log_info(‘お問い合わせ受付メール送信開始’);
の場所を探します
次のように書き換えます
// 問い合わせ者にメール送信
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] お問い合わせを受け付けました。’)
->setFrom(array($this->BaseInfo->getEmail02() => $this->BaseInfo->getShopName()))
->setTo(array($formData[‘email’]))
//->setBcc($this->BaseInfo->getEmail02())
->setReplyTo($this->BaseInfo->getEmail02())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$event = new EventArgs(
array(
‘message’ => $message,
‘formData’ => $formData,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_CONTACT, $event);
$count = $this->app->mail($message);
//ここが追加部分—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] お問い合わせを受け付けました。’)
->setFrom(array($formData[‘email’]))
->setTo($this->BaseInfo->getEmail02())
->setReplyTo(array($formData[‘email’]))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$count = $this->app->mail($message);
//—————–
log_info(‘お問い合わせ受付メール送信完了’, array(‘count’ => $count));
|
受注メール送信
お客様から注文が入ったときに管理人あてにくるメールです
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $MailTemplate->getSubject())
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
//->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$event = new EventArgs(
array(
‘message’ => $message,
‘Order’ => $Order,
‘MailTemplate’ => $MailTemplate,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_ORDER, $event);
$count = $this->app->mail($message);
//ここが追加部分—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $MailTemplate->getSubject())
->setFrom(array($Order->getEmail()))
->setTo($this->BaseInfo->getEmail01())
->setReplyTo(array($Order->getEmail()))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$count = $this->app->mail($message);
//—————–
log_info(‘受注メール送信完了’, array(‘count’ => $count));
|
受注管理通知メール送信
ここは管理画面からお客様へ「発送しましたよ」とか「注文を受付しましたよ」的なメールを送る際に使用する場所です。
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $formData[‘subject’])
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
//->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$event = new EventArgs(
array(
‘message’ => $message,
‘Order’ => $Order,
‘formData’ => $formData,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_ADMIN_ORDER, $event);
$count = $this->app->mail($message);
//追加するところ—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $formData[‘subject’])
->setFrom(array($Order->getEmail()))
->setTo($this->BaseInfo->getEmail01())
->setReplyTo(array($Order->getEmail()))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);
$count = $this->app->mail($message);
//—————–
log_info(‘受注管理通知メール送信完了’, array(‘count’ => $count));
|
注意点
ここで修正する全部のところに共通しますが
->setBcc(
をコメントアウトすることを忘れないように。
コメントアウトしないと、管理人までメールが来てしまいます。
コメント