Code Duplication    Length = 54-55 lines in 3 locations

src/Eccube/Service/MailService.php 3 locations

@@ 104-157 (lines=54) @@
101
     * @param $Customer 会員情報
102
     * @param string $activateUrl アクティベート用url
103
     */
104
    public function sendCustomerConfirmMail(\Eccube\Entity\Customer $Customer, $activateUrl)
105
    {
106
        log_info('仮会員登録メール送信開始');
107
108
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_entry_confirm_mail_template_id']);
109
110
        $body = $this->twig->render($MailTemplate->getFileName(), [
111
            'Customer' => $Customer,
112
            'BaseInfo' => $this->BaseInfo,
113
            'activateUrl' => $activateUrl,
114
        ]);
115
116
        $message = (new \Swift_Message())
117
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
118
            ->setFrom([$this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()])
119
            ->setTo([$Customer->getEmail()])
120
            ->setBcc($this->BaseInfo->getEmail01())
121
            ->setReplyTo($this->BaseInfo->getEmail03())
122
            ->setReturnPath($this->BaseInfo->getEmail04());
123
124
        // HTMLテンプレートが存在する場合
125
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
126
        if (!is_null($htmlFileName)) {
127
            $htmlBody = $this->twig->render($htmlFileName, [
128
                'Customer' => $Customer,
129
                'BaseInfo' => $this->BaseInfo,
130
                'activateUrl' => $activateUrl,
131
            ]);
132
133
            $message
134
                ->setContentType('text/plain; charset=UTF-8')
135
                ->setBody($body, 'text/plain')
136
                ->addPart($htmlBody, 'text/html');
137
        } else {
138
            $message->setBody($body);
139
        }
140
141
        $event = new EventArgs(
142
            [
143
                'message' => $message,
144
                'Customer' => $Customer,
145
                'BaseInfo' => $this->BaseInfo,
146
                'activateUrl' => $activateUrl,
147
            ],
148
            null
149
        );
150
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_CUSTOMER_CONFIRM, $event);
151
152
        $count = $this->mailer->send($message, $failures);
153
154
        log_info('仮会員登録メール送信完了', ['count' => $count]);
155
156
        return $count;
157
    }
158
159
    /**
160
     * Send customer complete mail.
@@ 419-473 (lines=55) @@
416
     * @param $Customer 会員情報
417
     * @param string $activateUrl アクティベート用url
418
     */
419
    public function sendAdminCustomerConfirmMail(\Eccube\Entity\Customer $Customer, $activateUrl)
420
    {
421
        log_info('仮会員登録再送メール送信開始');
422
423
        /* @var $MailTemplate \Eccube\Entity\MailTemplate */
424
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_entry_confirm_mail_template_id']);
425
426
        $body = $this->twig->render($MailTemplate->getFileName(), [
427
            'BaseInfo' => $this->BaseInfo,
428
            'Customer' => $Customer,
429
            'activateUrl' => $activateUrl,
430
        ]);
431
432
        $message = (new \Swift_Message())
433
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
434
            ->setFrom([$this->BaseInfo->getEmail03() => $this->BaseInfo->getShopName()])
435
            ->setTo([$Customer->getEmail()])
436
            ->setBcc($this->BaseInfo->getEmail01())
437
            ->setReplyTo($this->BaseInfo->getEmail03())
438
            ->setReturnPath($this->BaseInfo->getEmail04());
439
440
        // HTMLテンプレートが存在する場合
441
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
442
        if (!is_null($htmlFileName)) {
443
            $htmlBody = $this->twig->render($htmlFileName, [
444
                'BaseInfo' => $this->BaseInfo,
445
                'Customer' => $Customer,
446
                'activateUrl' => $activateUrl,
447
            ]);
448
449
            $message
450
                ->setContentType('text/plain; charset=UTF-8')
451
                ->setBody($body, 'text/plain')
452
                ->addPart($htmlBody, 'text/html');
453
        } else {
454
            $message->setBody($body);
455
        }
456
457
        $event = new EventArgs(
458
            [
459
                'message' => $message,
460
                'Customer' => $Customer,
461
                'BaseInfo' => $this->BaseInfo,
462
                'activateUrl' => $activateUrl,
463
            ],
464
            null
465
        );
466
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_ADMIN_CUSTOMER_CONFIRM, $event);
467
468
        $count = $this->mailer->send($message);
469
470
        log_info('仮会員登録再送メール送信完了', ['count' => $count]);
471
472
        return $count;
473
    }
474
475
    /**
476
     * Send admin order mail.
@@ 593-646 (lines=54) @@
590
     * @param $Customer 会員情報
591
     * @param string $password
592
     */
593
    public function sendPasswordResetCompleteMail(\Eccube\Entity\Customer $Customer, $password)
594
    {
595
        log_info('パスワード変更完了メール送信開始');
596
597
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_reset_complete_mail_template_id']);
598
599
        $body = $this->twig->render($MailTemplate->getFileName(), [
600
            'BaseInfo' => $this->BaseInfo,
601
            'Customer' => $Customer,
602
            'password' => $password,
603
        ]);
604
605
        $message = (new \Swift_Message())
606
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
607
            ->setFrom([$this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()])
608
            ->setTo([$Customer->getEmail()])
609
            ->setBcc($this->BaseInfo->getEmail01())
610
            ->setReplyTo($this->BaseInfo->getEmail03())
611
            ->setReturnPath($this->BaseInfo->getEmail04());
612
613
        // HTMLテンプレートが存在する場合
614
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
615
        if (!is_null($htmlFileName)) {
616
            $htmlBody = $this->twig->render($htmlFileName, [
617
                'BaseInfo' => $this->BaseInfo,
618
                'Customer' => $Customer,
619
                'password' => $password,
620
            ]);
621
622
            $message
623
                ->setContentType('text/plain; charset=UTF-8')
624
                ->setBody($body, 'text/plain')
625
                ->addPart($htmlBody, 'text/html');
626
        } else {
627
            $message->setBody($body);
628
        }
629
630
        $event = new EventArgs(
631
            [
632
                'message' => $message,
633
                'Customer' => $Customer,
634
                'BaseInfo' => $this->BaseInfo,
635
                'password' => $password,
636
            ],
637
            null
638
        );
639
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_PASSWORD_RESET_COMPLETE, $event);
640
641
        $count = $this->mailer->send($message);
642
643
        log_info('パスワード変更完了メール送信完了', ['count' => $count]);
644
645
        return $count;
646
    }
647
648
    /**
649
     * ポイントでマイナス発生時にメール通知する。