Fixing troubles with mailSend and Sender enabled
This commit is contained in:
parent
360ae911ce
commit
b6729d7bd2
|
|
@ -2062,7 +2062,8 @@ class PHPMailer
|
|||
$this->Sender = ini_get('sendmail_from');
|
||||
}
|
||||
if (!empty($this->Sender) && static::validateAddress($this->Sender)) {
|
||||
if (self::isShellSafe($this->Sender)) {
|
||||
$phpmailer_path = ini_get('sendmail_path');
|
||||
if (self::isShellSafe($this->Sender) && strpos($phpmailer_path, '-f') !== false) {
|
||||
$params = sprintf('-f%s', $this->Sender);
|
||||
}
|
||||
$old_from = ini_get('sendmail_from');
|
||||
|
|
|
|||
|
|
@ -20,6 +20,23 @@ use PHPMailer\Test\SendTestCase;
|
|||
*/
|
||||
final class MailTransportTest extends SendTestCase
|
||||
{
|
||||
/** @var string */
|
||||
private $originalSendmailFrom = '';
|
||||
|
||||
protected function set_up()
|
||||
{
|
||||
parent::set_up();
|
||||
|
||||
$from = ini_get('sendmail_from');
|
||||
$this->originalSendmailFrom = $from === false ? '' : $from;
|
||||
}
|
||||
|
||||
protected function tear_down()
|
||||
{
|
||||
ini_set('sendmail_from', $this->originalSendmailFrom);
|
||||
parent::tear_down();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test sending using SendMail.
|
||||
*
|
||||
|
|
@ -105,4 +122,25 @@ final class MailTransportTest extends SendTestCase
|
|||
$msg = $this->Mail->getSentMIMEMessage();
|
||||
self::assertStringNotContainsString("\r\n\r\nMIME-Version:", $msg, 'Incorrect MIME headers');
|
||||
}
|
||||
|
||||
public function testMailSendWithSendmailParams()
|
||||
{
|
||||
if (strpos(ini_get('sendmail_path'), 'rpath@example.com') === false) {
|
||||
self::markTestSkipped('Custom Sendmail php.ini not available');
|
||||
}
|
||||
|
||||
$this->Mail->Body = 'Sending via mail()';
|
||||
$this->buildBody();
|
||||
$this->Mail->Subject = $this->Mail->Subject . ': mail()';
|
||||
$this->Mail->clearAddresses();
|
||||
$this->setAddress('testmailsend@example.com', 'totest');
|
||||
|
||||
$sender = 'rpath@example.org';
|
||||
|
||||
ini_set('sendmail_from', $sender);
|
||||
$this->Mail->createHeader();
|
||||
$this->Mail->isMail();
|
||||
|
||||
self::assertTrue($this->Mail->send(), $this->Mail->ErrorInfo);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue