}
function mail_subscribe_notify($listenee, $listener) {
+ $other = $listener->getProfile();
+ mail_subscribe_notify_profile($listenee, $other);
+}
+
+function mail_subscribe_notify_profile($listenee, $other) {
if ($listenee->email && $listenee->emailnotifysub) {
$profile = $listenee->getProfile();
- $other = $listener->getProfile();
$name = $profile->getBestName();
$long_name = ($other->fullname) ? ($other->fullname . ' (' . $other->nickname . ')') : $other->nickname;
$recipients = $listenee->email;
}
function mail_new_incoming_address() {
- $prefix = common_good_rand(8);
+ $prefix = common_confirmation_code(64);
$suffix = mail_domain();
return $prefix . '@' . $suffix;
}
function mail_broadcast_notice_sms($notice) {
- $user = new User();
+ # Now, get users subscribed to this profile
- $user->smsnotify = 1;
- $user->whereAdd('EXISTS (select subscriber from subscriptions where ' .
- ' subscriber = user.id and subscribed = ' . $notice->profile_id . ')');
- $user->whereAdd('sms is not null');
+ $user = new User();
- $cnt = $user->find();
+ $user->query('SELECT nickname, smsemail, incomingemail ' .
+ 'FROM user JOIN subscription ' .
+ 'ON user.id = subscription.subscriber ' .
+ 'WHERE subscription.subscribed = ' . $notice->profile_id . ' ' .
+ 'AND user.smsemail IS NOT NULL ' .
+ 'AND user.smsnotify = 1');
while ($user->fetch()) {
- $success = mail_send_sms_notice($notice, $user);
+ common_log(LOG_INFO,
+ 'Sending notice ' . $notice->id . ' to ' . $user->smsemail,
+ __FILE__);
+ $success = mail_send_sms_notice_address($notice, $user->smsemail, $user->incomingemail);
if (!$success) {
- common_log(LOG_ERR, 'Could not send SMS message to user', __FILE__);
+ # XXX: Not sure, but I think that's the right thing to do
+ common_log(LOG_WARNING,
+ 'Sending notice ' . $notice->id . ' to ' . $user->smsemail . ' FAILED, cancelling.',
+ __FILE__);
return false;
}
}
-
+
+ $user->free();
+ unset($user);
+
return true;
}
function mail_send_sms_notice($notice, $user) {
- $profile = $user->getProfile();
- $name = $profile->getBestName();
- $to = $name . ' <' . $user->smsemail . '>';
+ return mail_send_sms_notice_address($notice, $user->smsemail, $user->incomingemail);
+}
+
+function mail_send_sms_notice_address($notice, $smsemail, $incomingemail) {
+
+ $to = $nickname . ' <' . $smsemail . '>';
$other = $notice->getProfile();
+ common_log(LOG_INFO, "Sending notice " . $notice->id . " to " . $smsemail, __FILE__);
+
$headers = array();
- $headers['From'] = $user->incomingemail;
+ $headers['From'] = (isset($incomingemail)) ? $incomingemail : mail_notify_from();
$headers['To'] = $to;
$headers['Subject'] = sprintf(_('%s status'),
$other->getBestName());
$body = $notice->content;
-
- return mail_send($user->smsemail, $headers, $body);
+
+ return mail_send($smsemail, $headers, $body);
}
function mail_confirm_sms($code, $nickname, $address) {
mail_send($recipients, $headers, $body);
}
+
+
+function mail_notify_nudge($from, $to) {
+
+ $subject = sprintf(_('You\'ve been nudged by %s'), $from->nickname);
+
+ $from_profile = $from->getProfile();
+
+ $body = sprintf(_("%1\$s (%2\$s) is wondering what you are up to these days and is inviting you to post some news.\n\n".
+ "So let's hear from you :)\n\n".
+ "%3\$s\n\n".
+ "Don't reply to this email; it won't get to them.\n\n".
+ "With kind regards,\n".
+ "%4\$s\n"),
+ $from_profile->getBestName(),
+ $from->nickname,
+ common_local_url('all', array('nickname' => $to->nickname)),
+ common_config('site', 'name'));
+
+ return mail_to_user($to, $subject, $body);
+}
+
+
+
+function mail_notify_message($message, $from=NULL, $to=NULL) {
+
+ if (is_null($from)) {
+ $from = User::staticGet('id', $message->from_profile);
+ }
+
+ if (is_null($to)) {
+ $to = User::staticGet('id', $message->to_profile);
+ }
+
+ if (is_null($to->email) || !$to->emailnotifymsg) {
+ return true;
+ }
+
+ $subject = sprintf(_('New private message from %s'), $from->nickname);
+
+ $from_profile = $from->getProfile();
+
+ $body = sprintf(_("%1\$s (%2\$s) sent you a private message:\n\n".
+ "------------------------------------------------------\n".
+ "%3\$s\n".
+ "------------------------------------------------------\n\n".
+ "You can reply to their message here:\n\n".
+ "%4\$s\n\n".
+ "Don't reply to this email; it won't get to them.\n\n".
+ "With kind regards,\n".
+ "%5\$s\n"),
+ $from_profile->getBestName(),
+ $from->nickname,
+ $message->content,
+ common_local_url('newmessage', array('to' => $from->id)),
+ common_config('site', 'name'));
+
+ return mail_to_user($to, $subject, $body);
+}
+
+function mail_notify_fave($other, $user, $notice) {
+
+ $profile = $user->getProfile();
+ $bestname = $profile->getBestName();
+ $subject = sprintf(_('%s added your notice as a favorite'), $bestname);
+ $body = sprintf(_("%1\$s just added your notice from %2\$s as one of their favorites.\n\n" .
+ "In case you forgot, you can see the text of your notice here:\n\n" .
+ "%3\$s\n\n" .
+ "You can see the list of %1\$s's favorites here:\n\n" .
+ "%4\$s\n\n" .
+ "Faithfully yours,\n" .
+ "%5\$s\n"),
+ $bestname,
+ common_exact_date($notice->created),
+ common_local_url('shownotice', array('notice' => $notice->id)),
+ common_local_url('showfavorites', array('nickname' => $user->nickname)),
+ common_config('site', 'name'));
+
+ mail_to_user($other, $subject, $body);
+}