diff options
author | Andrey Andreev <narf@bofh.bg> | 2012-10-05 16:08:20 +0200 |
---|---|---|
committer | Andrey Andreev <narf@bofh.bg> | 2012-10-05 16:08:20 +0200 |
commit | 66bf2c7dc4921681708630305eb2b1c2cd7d7670 (patch) | |
tree | beadfc2c3bec632c3e77de29847a12920f2994cd /system | |
parent | 1194ad733135214e9905123258df3600b01735fd (diff) | |
parent | cc7c7c691ad16beb5040a8a1d07064e61b5e2167 (diff) |
Merge pull request #1586 from melounek/email_return_path
added parameter for returned-path in Email::from()
Diffstat (limited to 'system')
-rw-r--r-- | system/libraries/Email.php | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 8fd7a79e7..84ea1654b 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -188,7 +188,7 @@ class CI_Email { * @param string * @return object */ - public function from($from, $name = '') + public function from($from, $name = '', $return_path = '') { if (preg_match('/\<(.*)\>/', $from, $match)) { @@ -198,6 +198,10 @@ class CI_Email { if ($this->validate) { $this->validate_email($this->_str_to_array($from)); + if($return_path) + { + $this->validate_email($this->_str_to_array($return_path)); + } } // prepare the display name @@ -216,7 +220,12 @@ class CI_Email { } $this->set_header('From', $name.' <'.$from.'>'); - $this->set_header('Return-Path', '<'.$from.'>'); + + if(!$return_path) + { + $return_path = $from; + } + $this->set_header('Return-Path', '<'.$return_path.'>'); return $this; } @@ -1399,7 +1408,7 @@ class CI_Email { { // most documentation of sendmail using the "-f" flag lacks a space after it, however // we've encountered servers that seem to require it to be in place. - return mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, '-f '.$this->clean_email($this->_headers['From'])); + return mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, '-f '.$this->clean_email($this->_headers['Return-Path'])); } } @@ -1412,7 +1421,7 @@ class CI_Email { */ protected function _send_with_sendmail() { - $fp = @popen($this->mailpath.' -oi -f '.$this->clean_email($this->_headers['From']).' -t', 'w'); + $fp = @popen($this->mailpath.' -oi -f '.$this->clean_email($this->_headers['From']).' -t'.' -r '.$this->clean_email($this->_headers['Return-Path']), 'w'); if ($fp === FALSE OR $fp === NULL) { |