Improve force_sender handling

This commit is contained in:
Kijin Sung 2016-05-23 16:38:38 +09:00
parent 194ef11de7
commit a0db70ef6a
2 changed files with 23 additions and 10 deletions

View file

@ -648,7 +648,7 @@ class Mail
{
$result = array();
foreach($address as $email => $name)
foreach($addresses as $email => $name)
{
if(strval($name) === '')
{

View file

@ -15,15 +15,6 @@ class Advanced_MailerController extends Advanced_Mailer
{
$config = $this->getConfig();
if (!$mail->getFrom())
{
$mail->setFrom($config->sender_email, $config->sender_name ?: null);
}
elseif (toBool($config->force_sender))
{
$mail->setFrom($config->sender_email, $config->sender_name ?: null);
}
$first_recipient = array_first_key($mail->message->getTo());
if ($exception_driver = $this->getSendingMethodForEmailAddress($first_recipient, $config))
{
@ -33,6 +24,28 @@ class Advanced_MailerController extends Advanced_Mailer
$mail->driver = $driver_class::getInstance(config("mail.$exception_driver"));
}
}
if (!$mail->getFrom())
{
$mail->setFrom($config->sender_email, $config->sender_name ?: null);
}
elseif (toBool($config->force_sender))
{
if (stripos($mail->driver->getName(), 'woorimail') !== false && config('mail.woorimail.api_type') === 'free')
{
// no-op
}
else
{
$original_sender_email = array_first_key($mail->message->getFrom());
$original_sender_name = array_first($mail->message->getFrom());
if ($original_sender_email !== $config->sender_email)
{
$mail->setFrom($config->sender_email, $original_sender_name ?: $config->sender_name);
$mail->setReplyTo($original_sender_email);
}
}
}
}
/**