Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
10 / 10 |
CRAP | |
100.00% |
203 / 203 |
| MailService | |
100.00% |
1 / 1 |
|
100.00% |
11 / 11 |
11 | |
100.00% |
203 / 203 |
| __construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| sendCustomerConfirmMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
23 / 23 |
|||
| sendCustomerCompleteMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
21 / 21 |
|||
| sendCustomerWithdrawMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
22 / 22 |
|||
| sendContactMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
21 / 21 |
|||
| sendrContactMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| sendOrderMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
24 / 24 |
|||
| sendAdminCustomerConfirmMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
22 / 22 |
|||
| sendAdminOrderMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
23 / 23 |
|||
| sendPasswordResetNotificationMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
22 / 22 |
|||
| sendPasswordResetCompleteMail | |
100.00% |
1 / 1 |
1 | |
100.00% |
22 / 22 |
|||
| <?php | |
| /* | |
| * This file is part of EC-CUBE | |
| * | |
| * Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved. | |
| * | |
| * http://www.lockon.co.jp/ | |
| * | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU General Public License | |
| * as published by the Free Software Foundation; either version 2 | |
| * of the License, or (at your option) any later version. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
| */ | |
| namespace Eccube\Service; | |
| use Eccube\Application; | |
| use Eccube\Event\EccubeEvents; | |
| use Eccube\Event\EventArgs; | |
| class MailService | |
| { | |
| /** @var \Eccube\Application */ | |
| public $app; | |
| /** @var \Eccube\Entity\BaseInfo */ | |
| public $BaseInfo; | |
| public function __construct(Application $app) | |
| { | |
| $this->app = $app; | |
| $this->BaseInfo = $app['eccube.repository.base_info']->get(); | |
| } | |
| /** | |
| * Send customer confirm mail. | |
| * | |
| * @param $Customer 会員情報 | |
| * @param $activateUrl アクティベート用url | |
| */ | |
| public function sendCustomerConfirmMail(\Eccube\Entity\Customer $Customer, $activateUrl) | |
| { | |
| log_info('仮会員登録メール送信開始'); | |
| $body = $this->app->renderView('Mail/entry_confirm.twig', array( | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'activateUrl' => $activateUrl, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認') | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Customer->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'activateUrl' => $activateUrl, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CUSTOMER_CONFIRM, $event); | |
| $count = $this->app->mail($message, $failures); | |
| log_info('仮会員登録メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send customer complete mail. | |
| * | |
| * @param $Customer 会員情報 | |
| */ | |
| public function sendCustomerCompleteMail(\Eccube\Entity\Customer $Customer) | |
| { | |
| log_info('会員登録完了メール送信開始'); | |
| $body = $this->app->renderView('Mail/entry_complete.twig', array( | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録が完了しました。') | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Customer->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CUSTOMER_COMPLETE, $event); | |
| $count = $this->app->mail($message); | |
| log_info('会員登録完了メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send withdraw mail. | |
| * | |
| * @param $Customer 会員情報 | |
| * @param $email 会員email | |
| */ | |
| public function sendCustomerWithdrawMail(\Eccube\Entity\Customer $Customer, $email) | |
| { | |
| log_info('退会手続き完了メール送信開始'); | |
| $body = $this->app->renderView('Mail/customer_withdraw_mail.twig', array( | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] 退会手続きのご完了') | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($email)) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'email' => $email, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CUSTOMER_WITHDRAW, $event); | |
| $count = $this->app->mail($message); | |
| log_info('退会手続き完了メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send contact mail. | |
| * | |
| * @param $formData お問い合わせ内容 | |
| */ | |
| public function sendContactMail($formData) | |
| { | |
| log_info('お問い合わせ受付メール送信開始'); | |
| $body = $this->app->renderView('Mail/contact_mail.twig', array( | |
| 'data' => $formData, | |
| 'BaseInfo' => $this->BaseInfo, | |
| )); | |
| // 問い合わせ者にメール送信 | |
| $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); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'formData' => $formData, | |
| 'BaseInfo' => $this->BaseInfo, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CONTACT, $event); | |
| $count = $this->app->mail($message); | |
| log_info('お問い合わせ受付メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Alias of sendContactMail(). | |
| * | |
| * @param $formData お問い合わせ内容 | |
| * @see sendContactMail() | |
| * @deprecated since 3.0.0, to be removed in 3.1 | |
| * @link https://github.com/EC-CUBE/ec-cube/issues/1315 | |
| */ | |
| public function sendrContactMail($formData) | |
| { | |
| $this->sendContactMail($formData); | |
| } | |
| /** | |
| * Send order mail. | |
| * | |
| * @param \Eccube\Entity\Order $Order 受注情報 | |
| * @return string | |
| */ | |
| public function sendOrderMail(\Eccube\Entity\Order $Order) | |
| { | |
| log_info('受注メール送信開始'); | |
| $MailTemplate = $this->app['eccube.repository.mail_template']->find(1); | |
| $body = $this->app->renderView($MailTemplate->getFileName(), array( | |
| 'header' => $MailTemplate->getHeader(), | |
| 'footer' => $MailTemplate->getFooter(), | |
| 'Order' => $Order, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] ' . $MailTemplate->getSubject()) | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Order->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Order' => $Order, | |
| 'MailTemplate' => $MailTemplate, | |
| 'BaseInfo' => $this->BaseInfo, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_ORDER, $event); | |
| $count = $this->app->mail($message); | |
| log_info('受注メール送信完了', array('count' => $count)); | |
| return $message; | |
| } | |
| /** | |
| * Send admin customer confirm mail. | |
| * | |
| * @param $Customer 会員情報 | |
| * @param $activateUrl アクティベート用url | |
| */ | |
| public function sendAdminCustomerConfirmMail(\Eccube\Entity\Customer $Customer, $activateUrl) | |
| { | |
| log_info('仮会員登録再送メール送信開始'); | |
| $body = $this->app->renderView('Mail/entry_confirm.twig', array( | |
| 'Customer' => $Customer, | |
| 'activateUrl' => $activateUrl, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認') | |
| ->setFrom(array($this->BaseInfo->getEmail03() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Customer->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'activateUrl' => $activateUrl, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_ADMIN_CUSTOMER_CONFIRM, $event); | |
| $count = $this->app->mail($message); | |
| log_info('仮会員登録再送メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send admin order mail. | |
| * | |
| * @param $Order 受注情報 | |
| * @param $formData 入力内容 | |
| */ | |
| public function sendAdminOrderMail(\Eccube\Entity\Order $Order, $formData) | |
| { | |
| log_info('受注管理通知メール送信開始'); | |
| $body = $this->app->renderView('Mail/order.twig', array( | |
| 'header' => $formData['header'], | |
| 'footer' => $formData['footer'], | |
| 'Order' => $Order, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] ' . $formData['subject']) | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Order->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Order' => $Order, | |
| 'formData' => $formData, | |
| 'BaseInfo' => $this->BaseInfo, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_ADMIN_ORDER, $event); | |
| $count = $this->app->mail($message); | |
| log_info('受注管理通知メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send password reset notification mail. | |
| * | |
| * @param $Customer 会員情報 | |
| */ | |
| public function sendPasswordResetNotificationMail(\Eccube\Entity\Customer $Customer, $reset_url) | |
| { | |
| log_info('パスワード再発行メール送信開始'); | |
| $body = $this->app->renderView('Mail/forgot_mail.twig', array( | |
| 'Customer' => $Customer, | |
| 'reset_url' => $reset_url | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] パスワード変更のご確認') | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Customer->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'resetUrl' => $reset_url, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_PASSWORD_RESET, $event); | |
| $count = $this->app->mail($message); | |
| log_info('パスワード再発行メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| /** | |
| * Send password reset notification mail. | |
| * | |
| * @param $Customer 会員情報 | |
| */ | |
| public function sendPasswordResetCompleteMail(\Eccube\Entity\Customer $Customer, $password) | |
| { | |
| log_info('パスワード変更完了メール送信開始'); | |
| $body = $this->app->renderView('Mail/reset_complete_mail.twig', array( | |
| 'Customer' => $Customer, | |
| 'password' => $password, | |
| )); | |
| $message = \Swift_Message::newInstance() | |
| ->setSubject('[' . $this->BaseInfo->getShopName() . '] パスワード変更のお知らせ') | |
| ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName())) | |
| ->setTo(array($Customer->getEmail())) | |
| ->setBcc($this->BaseInfo->getEmail01()) | |
| ->setReplyTo($this->BaseInfo->getEmail03()) | |
| ->setReturnPath($this->BaseInfo->getEmail04()) | |
| ->setBody($body); | |
| $event = new EventArgs( | |
| array( | |
| 'message' => $message, | |
| 'Customer' => $Customer, | |
| 'BaseInfo' => $this->BaseInfo, | |
| 'password' => $password, | |
| ), | |
| null | |
| ); | |
| $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_PASSWORD_RESET_COMPLETE, $event); | |
| $count = $this->app->mail($message); | |
| log_info('パスワード変更完了メール送信完了', array('count' => $count)); | |
| return $count; | |
| } | |
| } |