Code Duplication    Length = 51-52 lines in 3 locations

src/Eccube/Service/MailService.php 3 locations

@@ 164-214 (lines=51) @@
161
     *
162
     * @param $Customer 会員情報
163
     */
164
    public function sendCustomerCompleteMail(\Eccube\Entity\Customer $Customer)
165
    {
166
        log_info('会員登録完了メール送信開始');
167
168
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_entry_complete_mail_template_id']);
169
170
        $body = $this->twig->render($MailTemplate->getFileName(), [
171
            'Customer' => $Customer,
172
            'BaseInfo' => $this->BaseInfo,
173
        ]);
174
175
        $message = (new \Swift_Message())
176
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
177
            ->setFrom([$this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()])
178
            ->setTo([$Customer->getEmail()])
179
            ->setBcc($this->BaseInfo->getEmail01())
180
            ->setReplyTo($this->BaseInfo->getEmail03())
181
            ->setReturnPath($this->BaseInfo->getEmail04());
182
183
        // HTMLテンプレートが存在する場合
184
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
185
        if (!is_null($htmlFileName)) {
186
            $htmlBody = $this->twig->render($htmlFileName, [
187
                'Customer' => $Customer,
188
                'BaseInfo' => $this->BaseInfo,
189
            ]);
190
191
            $message
192
                ->setContentType('text/plain; charset=UTF-8')
193
                ->setBody($body, 'text/plain')
194
                ->addPart($htmlBody, 'text/html');
195
        } else {
196
            $message->setBody($body);
197
        }
198
199
        $event = new EventArgs(
200
            [
201
                'message' => $message,
202
                'Customer' => $Customer,
203
                'BaseInfo' => $this->BaseInfo,
204
            ],
205
            null
206
        );
207
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_CUSTOMER_COMPLETE, $event);
208
209
        $count = $this->mailer->send($message);
210
211
        log_info('会員登録完了メール送信完了', ['count' => $count]);
212
213
        return $count;
214
    }
215
216
    /**
217
     * Send withdraw mail.
@@ 222-273 (lines=52) @@
219
     * @param $Customer Customer
220
     * @param $email string
221
     */
222
    public function sendCustomerWithdrawMail(Customer $Customer, string $email)
223
    {
224
        log_info('退会手続き完了メール送信開始');
225
226
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_customer_withdraw_mail_template_id']);
227
228
        $body = $this->twig->render($MailTemplate->getFileName(), [
229
            'Customer' => $Customer,
230
            'BaseInfo' => $this->BaseInfo,
231
        ]);
232
233
        $message = (new \Swift_Message())
234
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
235
            ->setFrom([$this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()])
236
            ->setTo([$email])
237
            ->setBcc($this->BaseInfo->getEmail01())
238
            ->setReplyTo($this->BaseInfo->getEmail03())
239
            ->setReturnPath($this->BaseInfo->getEmail04());
240
241
        // HTMLテンプレートが存在する場合
242
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
243
        if (!is_null($htmlFileName)) {
244
            $htmlBody = $this->twig->render($htmlFileName, [
245
                'Customer' => $Customer,
246
                'BaseInfo' => $this->BaseInfo,
247
            ]);
248
249
            $message
250
                ->setContentType('text/plain; charset=UTF-8')
251
                ->setBody($body, 'text/plain')
252
                ->addPart($htmlBody, 'text/html');
253
        } else {
254
            $message->setBody($body);
255
        }
256
257
        $event = new EventArgs(
258
            [
259
                'message' => $message,
260
                'Customer' => $Customer,
261
                'BaseInfo' => $this->BaseInfo,
262
                'email' => $email,
263
            ],
264
            null
265
        );
266
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_CUSTOMER_WITHDRAW, $event);
267
268
        $count = $this->mailer->send($message);
269
270
        log_info('退会手続き完了メール送信完了', ['count' => $count]);
271
272
        return $count;
273
    }
274
275
    /**
276
     * Send contact mail.
@@ 280-331 (lines=52) @@
277
     *
278
     * @param $formData お問い合わせ内容
279
     */
280
    public function sendContactMail($formData)
281
    {
282
        log_info('お問い合わせ受付メール送信開始');
283
284
        $MailTemplate = $this->mailTemplateRepository->find($this->eccubeConfig['eccube_contact_mail_template_id']);
285
286
        $body = $this->twig->render($MailTemplate->getFileName(), [
287
            'data' => $formData,
288
            'BaseInfo' => $this->BaseInfo,
289
        ]);
290
291
        // 問い合わせ者にメール送信
292
        $message = (new \Swift_Message())
293
            ->setSubject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject())
294
            ->setFrom([$this->BaseInfo->getEmail02() => $this->BaseInfo->getShopName()])
295
            ->setTo([$formData['email']])
296
            ->setBcc($this->BaseInfo->getEmail02())
297
            ->setReplyTo($this->BaseInfo->getEmail02())
298
            ->setReturnPath($this->BaseInfo->getEmail04());
299
300
        // HTMLテンプレートが存在する場合
301
        $htmlFileName = $this->getHtmlTemplate($MailTemplate->getFileName());
302
        if (!is_null($htmlFileName)) {
303
            $htmlBody = $this->twig->render($htmlFileName, [
304
                'data' => $formData,
305
                'BaseInfo' => $this->BaseInfo,
306
            ]);
307
308
            $message
309
                ->setContentType('text/plain; charset=UTF-8')
310
                ->setBody($body, 'text/plain')
311
                ->addPart($htmlBody, 'text/html');
312
        } else {
313
            $message->setBody($body);
314
        }
315
316
        $event = new EventArgs(
317
            [
318
                'message' => $message,
319
                'formData' => $formData,
320
                'BaseInfo' => $this->BaseInfo,
321
            ],
322
            null
323
        );
324
        $this->eventDispatcher->dispatch(EccubeEvents::MAIL_CONTACT, $event);
325
326
        $count = $this->mailer->send($message);
327
328
        log_info('お問い合わせ受付メール送信完了', ['count' => $count]);
329
330
        return $count;
331
    }
332
333
    /**
334
     * Send order mail.