Fix #1391 blank sender email after upgrading from XE

This commit is contained in:
Kijin Sung 2020-08-27 20:57:27 +09:00
parent e565430dae
commit 28d71acffd

View file

@ -31,7 +31,8 @@ class Advanced_MailerController extends Advanced_Mailer
if (!$mail->getFrom())
{
$mail->setFrom(config('mail.default_from'), config('mail.default_name'));
list($default_from, $default_name) = $this->getDefaultEmailIdentity();
$mail->setFrom($default_from, $default_name);
if ($replyTo = config('mail.default_reply_to'))
{
$mail->setReplyTo($replyTo);
@ -48,9 +49,10 @@ class Advanced_MailerController extends Advanced_Mailer
$sender = $mail->message->getFrom();
$original_sender_email = $sender ? array_first_key($sender) : null;
$original_sender_name = $sender ? array_first($sender) : null;
if ($original_sender_email !== config('mail.default_from'))
list($default_from, $default_name) = $this->getDefaultEmailIdentity();
if ($original_sender_email !== $default_from)
{
$mail->setFrom(config('mail.default_from'), $original_sender_name ?: config('mail.default_name'));
$mail->setFrom($default_from, $original_sender_name ?: $default_name);
$mail->setReplyTo($original_sender_email);
}
}
@ -117,6 +119,25 @@ class Advanced_MailerController extends Advanced_Mailer
}
}
/**
* Get the default identity for sending email.
*
* @return array
*/
public function getDefaultEmailIdentity()
{
$email = config('mail.default_from');
$name = config('mail.default_name');
if (!$email)
{
$member_config = getModel('module')->getModuleConfig('member');
$email = $member_config->webmaster_email;
$name = $member_config->webmaster_name ?: 'webmaster';
}
return [$email, $name];
}
/**
* Check if an email address is on a list of exceptions.
*