Correction for issue #2388. Updated _build_message() to return a boolean. This prevents email from sending if there is an error trying to attach an attachment to the email.
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index a745d33..886d7bd 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -1236,7 +1236,7 @@
 	/**
 	 * Build Final Body and attachments
 	 *
-	 * @return	void
+	 * @return	boolean
 	 */
 	protected function _build_message()
 	{
@@ -1401,7 +1401,7 @@
 
 		$body .= implode($this->newline, $attachment).$this->newline.'--'.$this->_atc_boundary.'--';
 		$this->_finalbody = ($this->_get_protocol() === 'mail') ? $body : $hdr.$body;
-		return;
+		return TRUE;
 	}
 
 	// --------------------------------------------------------------------
@@ -1606,7 +1606,10 @@
 			return $result;
 		}
 
-		$this->_build_message();
+		if ($this->_build_message() === FALSE)
+		{
+			return FALSE;
+		}
 		$result = $this->_spool_email();
 
 		if ($result && $auto_clear)
@@ -1665,7 +1668,10 @@
 				$this->_bcc_array = $bcc;
 			}
 
-			$this->_build_message();
+			if ($this->_build_message() === FALSE)
+			{
+				return FALSE;
+			}
 			$this->_spool_email();
 		}
 	}