Labo

EC-CUBE3 分室

【3.0.15】お問い合わせ自動返信メールの管理者向け送信先追加

2018年01月06日 / 投稿者名:chiharu


明けましておめでとうございます。
今年もお付き合い頂ければと存じます。
 
・・・と、まぁ正月の挨拶はこの程度としてお題の方に入りたいと思います(笑)
 
前回前々回にてお問い合わせの項目追加に関して試してみました。
今回はその際に良く頂くカスタマイズについてを思い出したので記載しておきたいと思います。
なお、この機能は既にプラグインがあったはずです。
通常はカスタマイズをするのではなくプラグインを使用するようにして下さい(笑)
 
さて、お問い合わせメールに関して良く頂くカスタマイズ内容とは以下の内容です。
 「自動送信メールについて管理者向けのメールアドレスを複数にしたい。」
 
業務としてお話を頂く場合、メールアカウントも合わせてご提供させて頂くことが多いです。
その為、指定したメールアドレスのメールサーバーでご追加分のメールアドレスに転送する方法で対応する事が多いです。
困るのは既存のメールアカウントを既にお持ちなどの理由でメールアカウント側での設定が出来ない場合です。
 
そんな場合には自動メール送信時に Cc か Bcc 追加する必要があります。
今回はそんな状況での対応方法を確認しておこうと云うだけです。
その為、問題が無い場合はプラグインで対応して頂く方が色々と便利です(笑)
 
■お問い合わせ自動送信メールの管理者向け送信先追加
 
 ●ファイル
  <インストールフォルダ>/src/Eccube/Service/MailService.php
 ●モジュール
  sendContactMail
 ●参考行目
  188行目
 ●変更内容

        // 問い合わせ者にメール送信
        $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);

 ↓

        $arrBccMail   = array();
        $arrBccMail[] = $this->BaseInfo->getEmail02();
        $arrBccMail[] = '追加したいメールアドレス1';
        $arrBccMail[] = '追加したいメールアドレス2';
        $arrBccMail[] = '追加したいメールアドレス3';

        // 問い合わせ者にメール送信
        $message = \Swift_Message::newInstance()
            ->setSubject('[' . $this->BaseInfo->getShopName() . '] お問い合わせを受け付けました。')
            ->setFrom(array($this->BaseInfo->getEmail02() => $this->BaseInfo->getShopName()))
            ->setTo(array($formData['email']))
            ->setBcc($arrBccMail)
            ->setReplyTo($this->BaseInfo->getEmail02())
            ->setReturnPath($this->BaseInfo->getEmail04())
            ->setBody($body);

 ●概要説明
  基本的に EC-CUBE のメール送信関数で適切に処理をしてくれます。
  今回の変更については Bcc のアドレスを配列に変更しているところです。
  setBcc の内容で Bcc の送り先が決まるので素が複数に配送する場合は配列で情報を与えるだけで問題ありません。
  その為、値を配列に変更後は送信したいメールアドレスを配列に追加するだけです。
   ※ちなみに setTo なども同じような挙動となります。
 
  MailService.php に関してはお問い合わせ以外のメール送信も一括記述されています。
  ほかの自動送信メールについても同じ方法で変更することが可能となります。
 
 
・・・と、云うことで管理者向けメールのアドレス追加でした。
 
バージョンアップを行わない前提であれば問題は無いとは云え、プラグイン対応をしない方法を記載するのは少し心苦しいです。
まぁ、最近はバージョンアップも大分行われていません。
無理にプラグインのみでの対応をする必要もないでは無いかとも考え始めています。
3系であれ、2系であれ、何らかの進展があると良いのですが・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。