mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
domain configurable for mailing in CLI environment
This commit is contained in:
parent
21ba5bf04a
commit
a5c323064f
2 changed files with 61 additions and 2 deletions
|
@ -140,6 +140,14 @@ class CakeEmail {
|
||||||
*/
|
*/
|
||||||
protected $_messageId = true;
|
protected $_messageId = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Domain for messageId generation.
|
||||||
|
* Needs to be manually set for CLI mailing as env('HTTP_HOST') is empty
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $_domain = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The subject of the email
|
* The subject of the email
|
||||||
*
|
*
|
||||||
|
@ -308,6 +316,11 @@ class CakeEmail {
|
||||||
if ($this->_appCharset !== null) {
|
if ($this->_appCharset !== null) {
|
||||||
$this->charset = $this->_appCharset;
|
$this->charset = $this->_appCharset;
|
||||||
}
|
}
|
||||||
|
$this->_domain = env('HTTP_HOST');
|
||||||
|
if (empty($this->_domain)) {
|
||||||
|
$this->_domain = php_uname('n');
|
||||||
|
}
|
||||||
|
|
||||||
if ($config) {
|
if ($config) {
|
||||||
$this->config($config);
|
$this->config($config);
|
||||||
}
|
}
|
||||||
|
@ -689,7 +702,7 @@ class CakeEmail {
|
||||||
}
|
}
|
||||||
if ($this->_messageId !== false) {
|
if ($this->_messageId !== false) {
|
||||||
if ($this->_messageId === true) {
|
if ($this->_messageId === true) {
|
||||||
$headers['Message-ID'] = '<' . str_replace('-', '', String::UUID()) . '@' . env('HTTP_HOST') . '>';
|
$headers['Message-ID'] = '<' . str_replace('-', '', String::UUID()) . '@' . $this->_domain . '>';
|
||||||
} else {
|
} else {
|
||||||
$headers['Message-ID'] = $this->_messageId;
|
$headers['Message-ID'] = $this->_messageId;
|
||||||
}
|
}
|
||||||
|
@ -887,6 +900,20 @@ class CakeEmail {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Domain as top level (the part after @)
|
||||||
|
*
|
||||||
|
* @param string $domain Manually set the domain for CLI mailing
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function domain($domain = null) {
|
||||||
|
if ($domain === null) {
|
||||||
|
return $this->_domain;
|
||||||
|
}
|
||||||
|
$this->_domain = $domain;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add attachments to the email message
|
* Add attachments to the email message
|
||||||
*
|
*
|
||||||
|
@ -1097,7 +1124,7 @@ class CakeEmail {
|
||||||
}
|
}
|
||||||
$simpleMethods = array(
|
$simpleMethods = array(
|
||||||
'from', 'sender', 'to', 'replyTo', 'readReceipt', 'returnPath', 'cc', 'bcc',
|
'from', 'sender', 'to', 'replyTo', 'readReceipt', 'returnPath', 'cc', 'bcc',
|
||||||
'messageId', 'subject', 'viewRender', 'viewVars', 'attachments',
|
'messageId', 'domain', 'subject', 'viewRender', 'viewVars', 'attachments',
|
||||||
'transport', 'emailFormat', 'theme',
|
'transport', 'emailFormat', 'theme',
|
||||||
);
|
);
|
||||||
foreach ($simpleMethods as $method) {
|
foreach ($simpleMethods as $method) {
|
||||||
|
|
|
@ -388,6 +388,38 @@ class CakeEmailTest extends CakeTestCase {
|
||||||
$this->CakeEmail->messageId('my-email@localhost');
|
$this->CakeEmail->messageId('my-email@localhost');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testDomain method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testDomain() {
|
||||||
|
$result = $this->CakeEmail->domain();
|
||||||
|
$expected = env('HTTP_HOST') ? env('HTTP_HOST') : php_uname('n');
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
|
||||||
|
$this->CakeEmail->domain('example.org');
|
||||||
|
$result = $this->CakeEmail->domain();
|
||||||
|
$expected = 'example.org';
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testMessageIdWithDomain method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testMessageIdWithDomain() {
|
||||||
|
$result = $this->CakeEmail->getHeaders();
|
||||||
|
$expected = '@' . (env('HTTP_HOST') ? env('HTTP_HOST') : php_uname('n')) . '>';
|
||||||
|
$this->assertTextContains($expected, $result['Message-ID']);
|
||||||
|
|
||||||
|
$this->CakeEmail->domain('example.org');
|
||||||
|
$result = $this->CakeEmail->getHeaders();
|
||||||
|
$expected = '@example.org>';
|
||||||
|
$this->assertTextContains($expected, $result['Message-ID']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testSubject method
|
* testSubject method
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue