Better error handling when the email subsystem isn't working. The

installer was dying trying to send a confirmation email to the initial
user.
This commit is contained in:
Zach Copley 2011-09-15 16:52:23 -07:00
parent 0bd26ed3f0
commit dcbf2f6871

View File

@ -71,18 +71,25 @@ function mail_backend()
*/ */
function mail_send($recipients, $headers, $body) function mail_send($recipients, $headers, $body)
{ {
try {
// XXX: use Mail_Queue... maybe // XXX: use Mail_Queue... maybe
$backend = mail_backend(); $backend = mail_backend();
if (!isset($headers['Content-Type'])) { if (!isset($headers['Content-Type'])) {
$headers['Content-Type'] = 'text/plain; charset=UTF-8'; $headers['Content-Type'] = 'text/plain; charset=UTF-8';
} }
assert($backend); // throws an error if it's bad assert($backend); // throws an error if it's bad
$sent = $backend->send($recipients, $headers, $body); $sent = $backend->send($recipients, $headers, $body);
if (PEAR::isError($sent)) { return true;
common_log(LOG_ERR, 'Email error: ' . $sent->getMessage()); } catch (PEAR_Exception $e) {
common_log(
LOG_ERR,
"Unable to send email - '{$e->getMessage()}'. "
. 'Is your mail subsystem set up correctly?'
);
return false; return false;
} }
return true;
} }
/** /**