Fix #2344 display more helpful error message when default sender address is not configured

This commit is contained in:
Kijin Sung 2024-05-07 22:12:39 +09:00
parent 960f42a105
commit 54d0ed5463
4 changed files with 17 additions and 4 deletions

View file

@ -229,6 +229,11 @@ class Advanced_MailerAdminController extends Advanced_Mailer
$recipient_name = $recipient_config->recipient_name;
$recipient_email = $recipient_config->recipient_email;
if (!config('mail.default_from'))
{
$this->add('test_result', 'Error: ' . Context::getLang('msg_advanced_mailer_default_from_email_not_set'));
return;
}
if (!$recipient_name)
{
$this->add('test_result', 'Error: ' . Context::getLang('msg_advanced_mailer_recipient_name_is_empty'));

View file

@ -32,7 +32,10 @@ class Advanced_MailerController extends Advanced_Mailer
if (!$mail->getFrom())
{
list($default_from, $default_name) = $this->getDefaultEmailIdentity();
if ($default_from)
{
$mail->setFrom($default_from, $default_name);
}
$default_reply_to = config('mail.default_reply_to');
if ($default_reply_to && !$mail->message->getReplyTo())
{
@ -51,14 +54,17 @@ class Advanced_MailerController extends Advanced_Mailer
$original_sender_email = $sender ? array_first_key($sender) : null;
$original_sender_name = $sender ? array_first($sender) : null;
list($default_from, $default_name) = $this->getDefaultEmailIdentity();
if ($original_sender_email !== $default_from)
if ($original_sender_email !== $default_from && $default_from)
{
$mail->setFrom($default_from, $original_sender_name ?: $default_name);
if ($original_sender_email)
{
$mail->setReplyTo($original_sender_email);
}
}
}
}
}
/**
* After mail send trigger.
@ -132,7 +138,7 @@ class Advanced_MailerController extends Advanced_Mailer
if (!$email)
{
$member_config = getModel('module')->getModuleConfig('member');
$email = $member_config->webmaster_email;
$email = strval($member_config->webmaster_email);
$name = $member_config->webmaster_name ?: 'webmaster';
}

View file

@ -107,6 +107,7 @@ $lang->msg_advanced_mailer_sender_name_is_empty = 'Please enter the sender\'s na
$lang->msg_advanced_mailer_sender_email_is_empty = 'Please enter the sender\'s email address.';
$lang->msg_advanced_mailer_sender_email_is_invalid = 'The sender\'s email address is invalid.';
$lang->msg_advanced_mailer_reply_to_is_invalid = 'The Reply-To email address is invalid.';
$lang->msg_advanced_mailer_default_from_email_not_set = 'The default sender email address is not configured.';
$lang->msg_advanced_mailer_recipient_name_is_empty = 'Please enter the recipient\'s name.';
$lang->msg_advanced_mailer_recipient_email_is_empty = 'Please enter the recipient\'s email address.';
$lang->msg_advanced_mailer_recipient_email_is_invalid = 'The recipient\'s email address is invalid.';

View file

@ -107,6 +107,7 @@ $lang->msg_advanced_mailer_sender_name_is_empty = '보낸이 이름을 입력해
$lang->msg_advanced_mailer_sender_email_is_empty = '보낸이 메일 주소를 입력해 주십시오.';
$lang->msg_advanced_mailer_sender_email_is_invalid = '보낸이 메일 주소가 올바른 메일 주소가 아닙니다.';
$lang->msg_advanced_mailer_reply_to_is_invalid = 'Reply-To 메일 주소가 올바른 메일 주소가 아닙니다.';
$lang->msg_advanced_mailer_default_from_email_not_set = '기본 발신자 이름과 주소가 설정되어 있지 않습니다.';
$lang->msg_advanced_mailer_recipient_name_is_empty = '받는이 이름을 입력해 주십시오.';
$lang->msg_advanced_mailer_recipient_email_is_empty = '받는이 메일 주소를 입력해 주십시오.';
$lang->msg_advanced_mailer_recipient_email_is_invalid = '받는이 메일 주소가 올바른 메일 주소가 아닙니다.';