/** * テスト送信 * * @access public * @param * @return void * @author ida */ public function action_test() { $this->template = ''; $to = \Input::post('deliveredTo'); $input_data = $this->getInputData(); $replace_data = array(); $replace_data['user'] = $this->administrator; $mail_magazine_type = $input_data['mail_magazine_type']; switch ($mail_magazine_type) { case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_ALL: break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_REQUEST: break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_RESEVED_ENTRY: $fleamarket = \Model_Fleamarket::find($input_data['reserved_fleamarket_id']); $replace_data['fleamarket'] = $fleamarket; break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_WAITING_ENTRY: $fleamarket = \Model_Fleamarket::find($input_data['waiting_fleamarket_id']); $replace_data['fleamarket'] = $fleamarket; break; } $from_email = $input_data['from_email']; $from_name = $input_data['from_name']; $subject = trim($input_data['subject']); $body = $input_data['body']; $pattern = \Model_Mail_Magazine::getPatternParameter($mail_magazine_type); list($pattern, $replacement) = \Model_Mail_Magazine::createReplaceParameter($body, $pattern, $replace_data); $body = \Model_Mail_Magazine::replaceByParam($body, $pattern, $replacement); $success = false; $message = ''; if (filter_var($to, FILTER_VALIDATE_EMAIL)) { try { $success = \Model_Mail_Magazine::sendMail($from_name, $from_email, $to, $subject, $body); } catch (\Exception $e) { $message = $e->getMessage(); $success = false; } } else { $message = '差出人メールアドレスが正しくありません'; } $response = array(); if ($success) { $response = array('status' => 200); } else { $response = array('status' => 400, 'message' => $message); } return $this->responseJson($response); }
/** * メール送信処理 * * @access public * @param array $mail_magazine_user 送信先ユーザ情報 * @param array $mail_magazine メルマガ情報 * @param array $replace_data 本文リプレイス情報 * @return bool/string * @author ida */ private function send($mail_magazine_user, $mail_magazine, $replace_data) { if (empty($mail_magazine_user->email)) { throw new \Exception('email is not registered'); } if ($mail_magazine_user->email === '*****@*****.**') { throw new \Exception('email is anonymous@'); } $mail_magazine_type = $mail_magazine['mail_magazine_type']; $from_name = $mail_magazine['from_name']; $from_email = $mail_magazine['from_email']; $to = $mail_magazine_user->email; $subject = \Model_Mail_Magazine::convertEncoding($mail_magazine['subject']); $body = $mail_magazine['body']; $replace_data['user'] = $mail_magazine_user; $pattern = \Model_Mail_Magazine::getPatternParameter($mail_magazine_type); list($pattern, $replacement) = \Model_Mail_Magazine::createReplaceParameter($body, $pattern, $replace_data); $body = \Model_Mail_Magazine::replaceByParam($body, $pattern, $replacement); $result = \Model_Mail_Magazine::sendMail($from_name, $from_email, $to, $subject, $body); if (true === $result) { $result = \Model_Mail_Magazine_User::SEND_STATUS_NORMAL_END; } elseif (false === $send_result) { $result = \Model_Mail_Magazine_User::SEND_STATUS_UNSENT; } return $result; }