通常EC-CUBEの問い合わせメールや受注メールの送信先は1箇所だけです。これを増やすにはメールサーバーの方で転送するか、EC-CUBEのカスタマイズによって送信先を追加する必要があります。

送信先カスタマイズ方法

問い合わせメールに‘info@example.com’という運営者のアドレスを追加するカスタマイズの例を記載します。

EC-CUBEによって発行されているEccubeEvents::MAIL_ORDERというイベントをフックしてやります。

<?php

/*
 * This file is part of EC-CUBE
 *
 * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
 *
 * http://www.ec-cube.co.jp/
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Customize\Event;


use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Mime\Email;
/*
* @see https://umebius.com/eccube/add_order_email_address/
*/
class MailListener implements EventSubscriberInterface
{

    public function mailHook(EventArgs $event)
    {
        /* @var $message Email */
        $message = $event->getArgument('message');
        $addresses = $message->getBcc();
        // bccに新しいアドレスと 元々渡されてきたアドレスを両方設定する
        $message->bcc('info@example.com', ...$addresses);
    }

    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents()
    {
        return [
            EccubeEvents::MAIL_CONTACT => [['mailHook', 5],],
        ];
    }
}
 

イベントを使って、MailServiceから送られててきた$messageというオブジェクトに、Bccでinfo@example.comを追加しています。

カスタマイズの応用

他にも様々な種類のメールがありますが、メールの送信先をイベントによって変更できるため、

・問い合わせの種類によって送り先を変える

・商品ごとに受注メール送信先のアドレスを追加したり変える

といった様々なカスタマイズに応用することができます。

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ