added check for FALSE and NULL for servers who have popen listed in php.ini's disable_functions. $fp cannot be trusted on those retarded servers
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index a4d3c09..5858159 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -1539,6 +1539,12 @@
{
$fp = @popen($this->mailpath . " -oi -f ".$this->clean_email($this->_headers['From'])." -t", 'w');
+ if ($fp === FALSE OR $fp === NULL)
+ {
+ // server probably has popen disabled, so nothing we can do to get a verbose error.
+ return FALSE;
+ }
+
fputs($fp, $this->_header_str);
fputs($fp, $this->_finalbody);
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 154a30f..db30ad4 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -94,6 +94,7 @@
<li>Fixed a fatal error in the Oracle and ODBC drivers (#6752)</li>
<li>Fixed a bug where Database Forge's add_column and modify_column were not looping through when sent multiple fields.</li>
<li>Fixed a bug where the File Helper was using '/' instead of the DIRECTORY_SEPARATOR constant.</li>
+ <li>Fixed a bug to prevent PHP errors when attempting to use sendmail on servers that have manually disabled the PHP popen() function.</li>
</ul>
<h2>Version 1.7.1</h2>