/** * 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; }