if (!$backend) {
$backend = Mail::factory(common_config('mail', 'backend'),
- (common_config('mail', 'params')) ?
- common_config('mail', 'params') :
- array());
+ common_config('mail', 'params') ?: array());
if (PEAR::isError($backend)) {
common_server_error($backend->getMessage(), 500);
}
*/
function mail_send($recipients, $headers, $body)
{
- // XXX: use Mail_Queue... maybe
- $backend = mail_backend();
- if (!isset($headers['Content-Type'])) {
- $headers['Content-Type'] = 'text/plain; charset=UTF-8';
- }
- assert($backend); // throws an error if it's bad
- $sent = $backend->send($recipients, $headers, $body);
- if (PEAR::isError($sent)) {
- common_log(LOG_ERR, 'Email error: ' . $sent->getMessage());
+ try {
+ // XXX: use Mail_Queue... maybe
+ $backend = mail_backend();
+
+ if (!isset($headers['Content-Type'])) {
+ $headers['Content-Type'] = 'text/plain; charset=UTF-8';
+ }
+
+ assert($backend); // throws an error if it's bad
+ $sent = $backend->send($recipients, $headers, $body);
+ return true;
+ } catch (PEAR_Exception $e) {
+ common_log(
+ LOG_ERR,
+ "Unable to send email - '{$e->getMessage()}'. "
+ . 'Is your mail subsystem set up correctly?'
+ );
return false;
}
- return true;
}
/**
$headers['To'] = $name . ' <' . $listenee->email . '>';
// TRANS: Subject of new-subscriber notification e-mail.
// TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename.
- $headers['Subject'] = sprintf(_('%1$s is now listening to '.
- 'your notices on %2$s.'),
+ $headers['Subject'] = sprintf(_('%1$s is now following you on %2$s.'),
$other->getBestName(),
common_config('site', 'name'));
// TRANS: Main body of new-subscriber notification e-mail.
// TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename.
- $body = sprintf(_('%1$s is now listening to your notices on %2$s.'),
+ $body = sprintf(_('%1$s is now following you on %2$s.'),
$long_name,
common_config('site', 'name')) .
mail_profile_block($other) .
__FILE__);
$success = mail_send_sms_notice_address($notice,
$user->smsemail,
- $user->incomingemail);
+ $user->incomingemail,
+ $user->nickname);
if (!$success) {
// XXX: Not sure, but I think that's the right thing to do
common_log(LOG_WARNING,
{
return mail_send_sms_notice_address($notice,
$user->smsemail,
- $user->incomingemail);
+ $user->incomingemail,
+ $user->nickname);
}
/**
* @param Notice $notice notice to send
* @param string $smsemail email address to send to
* @param string $incomingemail email address to set as 'from'
+ * @param string $nickname nickname to add to beginning
*
* @return boolean success flag
*/
-function mail_send_sms_notice_address($notice, $smsemail, $incomingemail)
+function mail_send_sms_notice_address($notice, $smsemail, $incomingemail, $nickname)
{
$to = $nickname . ' <' . $smsemail . '>';
function mail_notify_message($message, $from=null, $to=null)
{
if (is_null($from)) {
- $from = User::staticGet('id', $message->from_profile);
+ $from = User::getKV('id', $message->from_profile);
}
if (is_null($to)) {
- $to = User::staticGet('id', $message->to_profile);
+ $to = User::getKV('id', $message->to_profile);
}
if (is_null($to->email) || !$to->emailnotifymsg) {
return;
}
+ if ($user->hasBlocked($sender)) {
+ // If the author has blocked us, don't spam them with a notification.
+ return;
+ }
+
$bestname = $sender->getBestName();
common_switch_locale($user->language);
// TRANS: Body of @-reply notification e-mail.
// TRANS: %1$s is the sending user's name, $2$s is the StatusNet sitename,
// TRANS: %3$s is a URL to the notice, %4$s is the notice text,
- // TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty),
+ // TRANS: %5$s is the text "The full conversation can be read here:" and a URL to the full conversion if it exists (otherwise empty),
// TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replies for the addressed user,
$body = sprintf(_("%1\$s just sent a notice to your attention (an '@-reply') on %2\$s.\n\n".
"The notice is here:\n\n".
$admin = $group->getAdmins();
while ($admin->fetch()) {
// We need a local user for email notifications...
- $adminUser = User::staticGet('id', $admin->id);
+ $adminUser = User::getKV('id', $admin->id);
// @fixme check for email preference?
if ($adminUser && $adminUser->email) {
// use the recipient's localization
// TRANS: Subject of group join notification e-mail.
// TRANS: %1$s is the joining user's nickname, %2$s is the group name, and %3$s is the StatusNet sitename.
$headers['Subject'] = sprintf(_('%1$s has joined '.
- 'your group %2$s on %3$s.'),
+ 'your group %2$s on %3$s'),
$joiner->getBestName(),
$group->getBestName(),
common_config('site', 'name'));
$admin = $group->getAdmins();
while ($admin->fetch()) {
// We need a local user for email notifications...
- $adminUser = User::staticGet('id', $admin->id);
+ $adminUser = User::getKV('id', $admin->id);
// @fixme check for email preference?
if ($adminUser && $adminUser->email) {
// use the recipient's localization