+function mail_confirm_address($user, $code, $nickname, $address) {
+
+ $subject = _('Email address confirmation');
+
+ $body = sprintf(_("Hey, %s.\n\nSomeone just entered this email address on %s.\n\n" .
+ "If it was you, and you want to confirm your entry, use the URL below:\n\n\t%s\n\n" .
+ "If not, just ignore this message.\n\nThanks for your time, \n%s\n")
+ , $nickname, common_config('site', 'name')
+ , common_local_url('confirmaddress', array('code' => $code)), common_config('site', 'name'));
+ return mail_to_user($user, $subject, $body, $address);
+}
+
+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) {
+ // use the recipients localization
+ common_init_locale($listenee->language);
+ $profile = $listenee->getProfile();
+ $name = $profile->getBestName();
+ $long_name = ($other->fullname) ? ($other->fullname . ' (' . $other->nickname . ')') : $other->nickname;
+ $recipients = $listenee->email;
+ $headers['From'] = mail_notify_from();
+ $headers['To'] = $name . ' <' . $listenee->email . '>';
+ $headers['Subject'] = sprintf(_('%1$s is now listening to your notices on %2$s.'), $other->getBestName(),
+ common_config('site', 'name'));
+ $body = sprintf(_('%1$s is now listening to your notices on %2$s.'."\n\n".
+ "\t".'%3$s'."\n\n".
+ 'Faithfully yours,'."\n".'%4$s.'."\n"),
+ $long_name,
+ common_config('site', 'name'),
+ $other->profileurl,
+ common_config('site', 'name'));
+
+ // reset localization
+ common_init_locale();
+ mail_send($recipients, $headers, $body);
+ }
+}
+
+function mail_new_incoming_notify($user) {
+
+ $profile = $user->getProfile();
+ $name = $profile->getBestName();
+
+ $headers['From'] = $user->incomingemail;
+ $headers['To'] = $name . ' <' . $user->email . '>';
+ $headers['Subject'] = sprintf(_('New email address for posting to %s'),
+ common_config('site', 'name'));
+
+ $body = sprintf(_("You have a new posting address on %1\$s.\n\n".
+ "Send email to %2\$s to post new messages.\n\n".
+ "More email instructions at %3\$s.\n\n".
+ "Faithfully yours,\n%4\$s"),
+ common_config('site', 'name'),
+ $user->incomingemail,
+ common_local_url('doc', array('title' => 'email')),
+ common_config('site', 'name'));
+
+ mail_send($user->email, $headers, $body);
+}
+
+function mail_new_incoming_address() {
+ $prefix = common_confirmation_code(64);
+ $suffix = mail_domain();
+ return $prefix . '@' . $suffix;
+}
+
+function mail_broadcast_notice_sms($notice) {
+
+ # Now, get users subscribed to this profile
+
+ $user = new User();
+
+ $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 ' .
+ 'AND subscription.sms = 1 ');
+
+ while ($user->fetch()) {
+ 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) {
+ # 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) {
+ 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'] = (isset($incomingemail)) ? $incomingemail : mail_notify_from();
+ $headers['To'] = $to;
+ $headers['Subject'] = sprintf(_('%s status'),
+ $other->getBestName());
+ $body = $notice->content;
+
+ return mail_send($smsemail, $headers, $body);
+}
+
+function mail_confirm_sms($code, $nickname, $address) {
+