/**
  * Send a test email using a temporary configuration.
  */
 public function procAdvanced_MailerAdminTestSend()
 {
     $advanced_mailer_config = $this->getConfig();
     $recipient_config = Context::gets('recipient_name', 'recipient_email');
     $recipient_name = $recipient_config->recipient_name;
     $recipient_email = $recipient_config->recipient_email;
     if (!$recipient_name) {
         $this->add('test_result', 'Error: ' . Context::getLang('msg_advanced_mailer_recipient_name_is_empty'));
         return;
     }
     if (!$recipient_email) {
         $this->add('test_result', 'Error: ' . Context::getLang('msg_advanced_mailer_recipient_email_is_empty'));
         return;
     }
     if (!Mail::isVaildMailAddress($recipient_email)) {
         $this->add('test_result', 'Error: ' . Context::getLang('msg_advanced_mailer_recipient_email_is_invalid'));
         return;
     }
     $oAdvancedMailerController = getController('advanced_mailer');
     $sending_method = $oAdvancedMailerController->getSendingMethodForEmailAddress($recipient_email) ?: config('mail.type');
     try {
         $oMail = new Rhymix\Framework\Mail();
         $oMail->setTitle('Advanced Mailer Test : ' . strtoupper($sending_method));
         $oMail->setContent('<p>This is a <b>test email</b> from Advanced Mailer.</p><p>Thank you for trying Advanced Mailer.</p>' . '<p>고급 메일 발송 모듈 <b>테스트</b> 메일입니다.</p><p>메일이 정상적으로 발송되고 있습니다.</p>');
         $oMail->addTo($recipient_email, $recipient_name);
         $result = $oMail->send();
         if (!$result) {
             if (count($oMail->errors)) {
                 if (config('mail.type') === 'smtp') {
                     if (strpos(config('mail.smtp.smtp_host'), 'gmail.com') !== false && strpos(implode("\n", $oMail->errors), 'code "535"') !== false) {
                         $this->add('test_result', Context::getLang('msg_advanced_mailer_google_account_security'));
                         return;
                     }
                     if (strpos(config('mail.smtp.smtp_host'), 'naver.com') !== false && strpos(implode("\n", $oMail->errors), 'Failed to authenticate') !== false) {
                         $this->add('test_result', Context::getLang('msg_advanced_mailer_naver_smtp_disabled'));
                         return;
                     }
                 }
                 $this->add('test_result', nl2br(htmlspecialchars(implode("\n", $oMail->errors))));
                 return;
             } else {
                 $this->add('test_result', Context::getLang('msg_advanced_mailer_unknown_error'));
                 return;
             }
         }
     } catch (Exception $e) {
         $this->add('test_result', nl2br(htmlspecialchars($e->getMessage())));
         return;
     }
     $this->add('test_result', Context::getLang('msg_advanced_mailer_test_success'));
     return;
 }