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.
@@ 411-465 (lines=55) @@
408
     * @param $Customer 会員情報
409
     * @param string $activateUrl アクティベート用url
410
     */
411
    public function sendAdminCustomerConfirmMail(\Eccube\Entity\Customer $Customer, $activateUrl)
412
    {
413
        log_info('仮会員登録再送メール送信開始');
414
415
        /* @var $MailTemplate \Eccube\Entity\MailTemplate */
416
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_entry_confirm_mail_template_id']);
417
418
        $body = $this->twig->render($MailTemplate->getFileName(), [
419
            'BaseInfo' => $this->BaseInfo,
420
            'Customer' => $Customer,
421
            'activateUrl' => $activateUrl,
422
        ]);
423
424
        $message = (new \Swift_Message())
425
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
426
            ->setFrom([$this->BaseInfo->getEmail03() => $this->BaseInfo->getShopName()])
427
            ->setTo([$Customer->getEmail()])
428
            ->setBcc($this->BaseInfo->getEmail01())
429
            ->setReplyTo($this->BaseInfo->getEmail03())
430
            ->setReturnPath($this->BaseInfo->getEmail04());
431
432
        // HTMLテンプレートが存在する場合
433
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
434
        if (!is_null($htmlFileName)) {
435
            $htmlBody = $this->twig->render($htmlFileName, [
436
                'BaseInfo' => $this->BaseInfo,
437
                'Customer' => $Customer,
438
                'activateUrl' => $activateUrl,
439
            ]);
440
441
            $message
442
                ->setContentType('text/plain; charset=UTF-8')
443
                ->setBody($body, 'text/plain')
444
                ->addPart($htmlBody, 'text/html');
445
        } else {
446
            $message->setBody($body);
447
        }
448
449
        $event = new EventArgs(
450
            [
451
                'message' => $message,
452
                'Customer' => $Customer,
453
                'BaseInfo' => $this->BaseInfo,
454
                'activateUrl' => $activateUrl,
455
            ],
456
            null
457
        );
458
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_ADMIN_CUSTOMER_CONFIRM, $event);
459
460
        $count = $this->mailer->send($message);
461
462
        log_info('仮会員登録再送メール送信完了', ['count' => $count]);
463
464
        return $count;
465
    }
466
467
    /**
468
     * Send admin order mail.
@@ 585-638 (lines=54) @@
582
     * @param $Customer 会員情報
583
     * @param string $password
584
     */
585
    public function sendPasswordResetCompleteMail(\Eccube\Entity\Customer $Customer, $password)
586
    {
587
        log_info('パスワード変更完了メール送信開始');
588
589
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_reset_complete_mail_template_id']);
590
591
        $body = $this->twig->render($MailTemplate->getFileName(), [
592
            'BaseInfo' => $this->BaseInfo,
593
            'Customer' => $Customer,
594
            'password' => $password,
595
        ]);
596
597
        $message = (new \Swift_Message())
598
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
599
            ->setFrom([$this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()])
600
            ->setTo([$Customer->getEmail()])
601
            ->setBcc($this->BaseInfo->getEmail01())
602
            ->setReplyTo($this->BaseInfo->getEmail03())
603
            ->setReturnPath($this->BaseInfo->getEmail04());
604
605
        // HTMLテンプレートが存在する場合
606
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
607
        if (!is_null($htmlFileName)) {
608
            $htmlBody = $this->twig->render($htmlFileName, [
609
                'BaseInfo' => $this->BaseInfo,
610
                'Customer' => $Customer,
611
                'password' => $password,
612
            ]);
613
614
            $message
615
                ->setContentType('text/plain; charset=UTF-8')
616
                ->setBody($body, 'text/plain')
617
                ->addPart($htmlBody, 'text/html');
618
        } else {
619
            $message->setBody($body);
620
        }
621
622
        $event = new EventArgs(
623
            [
624
                'message' => $message,
625
                'Customer' => $Customer,
626
                'BaseInfo' => $this->BaseInfo,
627
                'password' => $password,
628
            ],
629
            null
630
        );
631
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_PASSWORD_RESET_COMPLETE, $event);
632
633
        $count = $this->mailer->send($message);
634
635
        log_info('パスワード変更完了メール送信完了', ['count' => $count]);
636
637
        return $count;
638
    }
639
640
    /**
641
     * ポイントでマイナス発生時にメール通知する。