3 * Laconica - a distributed open-source microblogging tool
4 * Copyright (C) 2008, Controlez-Vous, Inc.
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 if (!defined('LACONICA')) { exit(1); }
22 require_once('Mail.php');
24 function mail_backend() {
25 static $backend = NULL;
29 $backend = Mail::factory($config['mail']['backend'],
30 ($config['mail']['params']) ? $config['mail']['params'] : array());
31 if (PEAR::isError($backend)) {
32 common_server_error($backend->getMessage(), 500);
38 # XXX: use Mail_Queue... maybe
40 function mail_send($recipients, $headers, $body) {
41 $backend = mail_backend();
42 assert($backend); # throws an error if it's bad
43 $sent = $backend->send($recipients, $headers, $body);
44 if (PEAR::isError($sent)) {
45 common_log(LOG_ERROR, 'Email error: ' . $sent->getMessage());
51 function mail_notify_from() {
53 if ($config['mail']['notifyfrom']) {
54 return $config['mail']['notifyfrom'];
56 return $config['site']['name'] . ' <noreply@'.$config['site']['server'].'>';
60 function mail_to_user(&$user, $subject, $body, $address=NULL) {
62 $address = $user->email;
65 $recipients = $address;
66 $profile = $user->getProfile();
68 $headers['From'] = mail_notify_from();
69 $headers['To'] = $profile->getBestName() . ' <' . $address . '>';
70 $headers['Subject'] = $subject;
72 return mail_send($recipients, $headers, $body);
75 # For confirming a Jabber address
76 # XXX: change to use mail_to_user() above
78 function mail_confirm_address($code, $nickname, $address) {
79 $recipients = $address;
80 $headers['From'] = mail_notify_from();
81 $headers['To'] = $nickname . ' <' . $address . '>';
82 $headers['Subject'] = _t('Email address confirmation');
84 $body = "Hey, $nickname.";
86 $body .= 'Someone just entered this email address on ' . common_config('site', 'name') . '.';
88 $body .= 'If it was you, and you want to confirm your entry, use the URL below:';
90 $body .= "\t".common_local_url('confirmaddress',
91 array('code' => $code));
93 $body .= 'If not, just ignore this message.';
95 $body .= 'Thanks for your time, ';
97 $body .= common_config('site', 'name');
100 mail_send($recipients, $headers, $body);