EC-CUBE3注文・問い合わせメールを返信でお客様のアドレスに

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(

をコメントアウトすることを忘れないように。
コメントアウトしないと、管理人までメールが来てしまいます。

 

コメントを残す