Merge pull request #1123 from fabrixxm/mail_notification_cleanup

Mail notification cleanup
This commit is contained in:
fabrixxm 2014-09-07 15:05:06 +02:00
commit a7302daf96
265 changed files with 7372 additions and 12324 deletions

View File

@ -1037,26 +1037,14 @@ if(! function_exists('update_db')) {
require_once("include/dbstructure.php"); require_once("include/dbstructure.php");
$retval = update_structure(false, true); $retval = update_structure(false, true);
if($retval) { if($retval) {
//send the administrator an e-mail update_fail(
$email_tpl = get_intltext_template("update_fail_eml.tpl"); DB_UPDATE_VERSION,
$email_msg = replace_macros($email_tpl, array( sprintf(t('Update %s failed. See error logs.'), DB_UPDATE_VERSION)
'$sitename' => $a->config['sitename'], );
'$siteurl' => $a->get_baseurl(),
'$update' => DB_UPDATE_VERSION,
'$error' => sprintf(t('Update %s failed. See error logs.'), DB_UPDATE_VERSION)
));
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
require_once('include/email.php');
$subject = email_header_encode($subject,'UTF-8');
mail($a->config['admin_email'], $subject, $email_msg,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME']."\n"
.'Content-type: text/plain; charset=UTF-8'."\n"
.'Content-transfer-encoding: 8bit');
//try the logger
logger("CRITICAL: Database structure update failed: ".$retval);
break; break;
} else } else {
set_config('database','dbupdate_'.DB_UPDATE_VERSION, 'success'); set_config('database','dbupdate_'.DB_UPDATE_VERSION, 'success');
}
for($x = $stored; $x < $current; $x ++) { for($x = $stored; $x < $current; $x ++) {
if(function_exists('update_' . $x)) { if(function_exists('update_' . $x)) {
@ -1080,22 +1068,10 @@ if(! function_exists('update_db')) {
$retval = $func(); $retval = $func();
if($retval) { if($retval) {
//send the administrator an e-mail //send the administrator an e-mail
$email_tpl = get_intltext_template("update_fail_eml.tpl"); update_fail(
$email_msg = replace_macros($email_tpl, array( $x,
'$sitename' => $a->config['sitename'], sprintf(t('Update %s failed. See error logs.'), $x)
'$siteurl' => $a->get_baseurl(), );
'$update' => $x,
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
));
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
require_once('include/email.php');
$subject = email_header_encode($subject,'UTF-8');
mail($a->config['admin_email'], $subject, $email_msg,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
//try the logger
logger('CRITICAL: Update Failed: '. $x);
break; break;
} else { } else {
set_config('database','update_' . $x, 'success'); set_config('database','update_' . $x, 'success');

View File

@ -2,7 +2,7 @@
require_once('include/email.php'); require_once('include/email.php');
class EmailNotification { class Emailer {
/** /**
* Send a multipart/alternative message with Text and HTML versions * Send a multipart/alternative message with Text and HTML versions
* *
@ -13,12 +13,12 @@ class EmailNotification {
* @param messageSubject subject of the message * @param messageSubject subject of the message
* @param htmlVersion html version of the message * @param htmlVersion html version of the message
* @param textVersion text only version of the message * @param textVersion text only version of the message
* @param additionalMailHeader additions to the smtp mail header
*/ */
static public function sendTextHtmlEmail($fromName,$fromEmail,$replyTo,$toEmail,$messageSubject,$htmlVersion,$textVersion) { static public function send($params) {
$fromName = email_header_encode($fromName,'UTF-8');
$messageSubject = email_header_encode($messageSubject,'UTF-8');
$fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
$messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
// generate a mime boundary // generate a mime boundary
$mimeBoundary =rand(0,9)."-" $mimeBoundary =rand(0,9)."-"
@ -28,14 +28,15 @@ class EmailNotification {
// generate a multipart/alternative message header // generate a multipart/alternative message header
$messageHeader = $messageHeader =
"From: {$fromName} <{$fromEmail}>\n" . $params['additionalMailHeader'] .
"Reply-To: {$replyTo}\n" . "From: $fromName <{$params['fromEmail']}>\n" .
"Reply-To: $fromName <{$params['replyTo']}>\n" .
"MIME-Version: 1.0\n" . "MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\""; "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
// assemble the final multipart message body with the text and html types included // assemble the final multipart message body with the text and html types included
$textBody = chunk_split(base64_encode($textVersion)); $textBody = chunk_split(base64_encode($params['textVersion']));
$htmlBody = chunk_split(base64_encode($htmlVersion)); $htmlBody = chunk_split(base64_encode($params['htmlVersion']));
$multipartMessageBody = $multipartMessageBody =
"--" . $mimeBoundary . "\n" . // plain text section "--" . $mimeBoundary . "\n" . // plain text section
"Content-Type: text/plain; charset=UTF-8\n" . "Content-Type: text/plain; charset=UTF-8\n" .
@ -49,12 +50,13 @@ class EmailNotification {
// send the message // send the message
$res = mail( $res = mail(
$toEmail, // send to address $params['toEmail'], // send to address
$messageSubject, // subject $messageSubject, // subject
$multipartMessageBody, // message body $multipartMessageBody, // message body
$messageHeader // message headers $messageHeader // message headers
); );
logger("sendTextHtmlEmail: END"); logger("header " . 'To: ' . $params['toEmail'] . "\n" . $messageHeader, LOGGER_DEBUG);
logger("return value " . (($res)?"true":"false"), LOGGER_DEBUG);
} }
} }
?> ?>

View File

@ -1,5 +1,66 @@
<?php <?php
require_once("boot.php"); require_once("boot.php");
require_once("include/text.php");
/*
* send the email and do what is needed to do on update fails
*
* @param update_id (int) number of failed update
* @param error_message (str) error message
*/
function update_fail($update_id, $error_message){
//send the administrators an e-mail
$admin_mail_list = "'".implode("','", array_map(dbesc, explode(",", str_replace(" ", "", $a->config['admin_email']))))."'";
$adminlist = q("SELECT uid, language, email FROM user WHERE email IN (%s)",
$admin_mail_list
);
// every admin could had different language
foreach ($adminlist as $admin) {
$lang = (($admin['language'])?$admin['language']:'en');
push_lang($lang);
$preamble = deindent(t("
The friendica developers released update %s recently,
but when I tried to install it, something went terribly wrong.
This needs to be fixed soon and I can't do it alone. Please contact a
friendica developer if you can not help me on your own. My database might be invalid.");
$body = t("The error message is\n[pre]%s[/pre]");
$preamble = sprintf($preamble, $update_id);
$body = sprintf($body, $error_message);
notification(array(
'type' => "SYSTEM_EMAIL",
'to_email' => $admin['email'],
'preamble' => $preamble,
'body' => $body,
'language' => $lang,
));
}
/*
$email_tpl = get_intltext_template("update_fail_eml.tpl");
$email_msg = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$update' => DB_UPDATE_VERSION,
'$error' => sprintf(t('Update %s failed. See error logs.'), DB_UPDATE_VERSION)
));
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
require_once('include/email.php');
$subject = email_header_encode($subject,'UTF-8');
mail($a->config['admin_email'], $subject, $email_msg,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME']."\n"
.'Content-type: text/plain; charset=UTF-8'."\n"
.'Content-transfer-encoding: 8bit');
*/
//try the logger
logger("CRITICAL: Database structure update failed: ".$retval);
break;
}
function dbstructure_run(&$argv, &$argc) { function dbstructure_run(&$argv, &$argc) {
global $a, $db; global $a, $db;

View File

@ -249,6 +249,12 @@ function email_header_encode($in_str, $charset) {
return $out_str; return $out_str;
} }
/**
* email_send is used by NETWORK_EMAIL and NETWORK_EMAIL2 code
* (not to notify the user, but to send items to email contacts
*
* TODO: this could be changed to use the Emailer class
*/
function email_send($addr, $subject, $headers, $item) { function email_send($addr, $subject, $headers, $item) {
//$headers .= 'MIME-Version: 1.0' . "\n"; //$headers .= 'MIME-Version: 1.0' . "\n";
//$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";

View File

@ -1,10 +1,12 @@
<?php <?php
require_once('include/Emailer.php');
require_once('include/email.php'); require_once('include/email.php');
require_once('include/bbcode.php');
require_once('include/html2bbcode.php');
function notification($params) { function notification($params) {
logger('notification: entry', LOGGER_DEBUG); #logger('notification()', LOGGER_DEBUG);
$a = get_app(); $a = get_app();
@ -26,8 +28,13 @@ function notification($params) {
$hostname = substr($hostname,0,strpos($hostname,':')); $hostname = substr($hostname,0,strpos($hostname,':'));
$sender_email = t('noreply') . '@' . $hostname; $sender_email = t('noreply') . '@' . $hostname;
$additional_mail_header = "";
// with $params['show_in_notification_page'] == false, the notification isn't inserted into
// the database, and an email is sent if applicable.
// default, if not specified: true
$show_in_notification_page = ((x($params,'show_in_notification_page')) ? $params['show_in_notification_page']:True);
$additional_mail_header = "";
$additional_mail_header .= "Precedence: list\n"; $additional_mail_header .= "Precedence: list\n";
$additional_mail_header .= "X-Friendica-Host: ".$hostname."\n"; $additional_mail_header .= "X-Friendica-Host: ".$hostname."\n";
$additional_mail_header .= "X-Friendica-Platform: ".FRIENDICA_PLATFORM."\n"; $additional_mail_header .= "X-Friendica-Platform: ".FRIENDICA_PLATFORM."\n";
@ -35,6 +42,7 @@ function notification($params) {
$additional_mail_header .= "List-ID: <notification.".$hostname.">\n"; $additional_mail_header .= "List-ID: <notification.".$hostname.">\n";
$additional_mail_header .= "List-Archive: <".$a->get_baseurl()."/notifications/system>\n"; $additional_mail_header .= "List-Archive: <".$a->get_baseurl()."/notifications/system>\n";
if(array_key_exists('item',$params)) { if(array_key_exists('item',$params)) {
$title = $params['item']['title']; $title = $params['item']['title'];
$body = $params['item']['body']; $body = $params['item']['body'];
@ -223,6 +231,30 @@ function notification($params) {
$tsitelink = sprintf( $sitelink, $siteurl ); $tsitelink = sprintf( $sitelink, $siteurl );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>'); $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link']; $itemlink = $params['link'];
switch ($params['verb']) {
case ACTIVITY_FRIEND:
// someone started to share with user (mostly OStatus)
$subject = sprintf( t('[Friendica:Notify] A new person is sharing with you'));
$preamble = sprintf( t('%1$s is sharing with you at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('%1$s is sharing with you at %2$s'),
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
$sitename);
break;
case ACTIVITY_FOLLOW:
// someone started to follow the user (mostly OStatus)
$subject = sprintf( t('[Friendica:Notify] You have a new follower'));
$preamble = sprintf( t('You have a new follower at %2$s : %1$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You have a new follower at %2$s : %1$s'),
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
$sitename);
break;
default:
// ACTIVITY_REQ_FRIEND is default activity for notifications
break;
}
} }
if($params['type'] == NOTIFY_SUGGEST) { if($params['type'] == NOTIFY_SUGGEST) {
@ -244,12 +276,81 @@ function notification($params) {
} }
if($params['type'] == NOTIFY_CONFIRM) { if($params['type'] == NOTIFY_CONFIRM) {
if ($params['verb'] == ACTIVITY_FRIEND ){ // mutual connection
$subject = sprintf( t('[Friendica:Notify] Connection accepted'));
$preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
$itemlink,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = t('You are now mutual friends and may exchange status updates, photos, and email
without restriction.');
$sitelink = t('Please visit %s if you wish to make any changes to this relationship.');
$tsitelink = sprintf( $sitelink, $siteurl );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link'];
} else { // ACTIVITY_FOLLOW
$subject = sprintf( t('[Friendica:Notify] Connection accepted'));
$preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
$itemlink,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = sprintf(t('\'%1$s\' has chosen to accept you a "fan", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically.'), $params['source_name']);
$body .= "\n\n";
$body .= sprintf(t('\'%1$s\' may choose to extend this into a two-way or more permissive relationship in the future. '), $params['source_name']);
$sitelink = t('Please visit %s if you wish to make any changes to this relationship.');
$tsitelink = sprintf( $sitelink, $siteurl );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link'];
}
} }
if($params['type'] == NOTIFY_SYSTEM) { if($params['type'] == NOTIFY_SYSTEM) {
switch($params['event']) {
case "SYSTEM_REGISTER_REQUEST":
$subject = sprintf( t('[Friendica System:Notify] registration request'));
$preamble = sprintf( t('You\'ve received a registration request from \'%1$s\' at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You\'ve received a [url=%1$s]registration request[/url] from %2$s.'),
$itemlink,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = sprintf( t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s (%4$s)'),
$params['source_name'], $siteurl, $params['source_mail'], $params['source_nick']);
$sitelink = t('Please visit %s to approve or reject the request.');
$tsitelink = sprintf( $sitelink, $params['link'] );
$hsitelink = sprintf( $sitelink, '<a href="' . $params['link'] . '">' . $sitename . '</a>');
$itemlink = $params['link'];
break;
case "SYSTEM_DB_UPDATE_FAIL":
break;
}
} }
if ($params['type'] == "SYSTEM_EMAIL"){
// not part of the notifications.
// it just send a mail to the user.
// It will be used by the system to send emails to users (like
// password reset, invitations and so) using one look (but without
// add a notification to the user, with could be inexistent)
$subject = $params['subject'];
$preamble = $params['preamble'];
if (x($params,'epreamble')){
$epreamble = $params['epreamble'];
} else {
$epreamble = str_replace("\n","<br>\n",$preamble);
}
$body = $params['body'];
$sitelink = "";
$tsitelink = "";
$hsitelink = "";
$itemlink = "";
$show_in_notification_page = false;
}
$h = array( $h = array(
'params' => $params, 'params' => $params,
'subject' => $subject, 'subject' => $subject,
@ -274,114 +375,110 @@ function notification($params) {
$itemlink = $h['itemlink']; $itemlink = $h['itemlink'];
require_once('include/html2bbcode.php');
do { if ($show_in_notification_page) {
$dups = false; logger("adding notification entry", LOGGER_DEBUG);
$hash = random_string(); do {
$r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1", $dups = false;
dbesc($hash)); $hash = random_string();
if(count($r)) $r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1",
$dups = true; dbesc($hash));
} while($dups == true); if(count($r))
$dups = true;
} while($dups == true);
$datarray = array(); $datarray = array();
$datarray['hash'] = $hash; $datarray['hash'] = $hash;
$datarray['name'] = $params['source_name']; $datarray['name'] = $params['source_name'];
$datarray['url'] = $params['source_link']; $datarray['url'] = $params['source_link'];
$datarray['photo'] = $params['source_photo']; $datarray['photo'] = $params['source_photo'];
$datarray['date'] = datetime_convert(); $datarray['date'] = datetime_convert();
$datarray['uid'] = $params['uid']; $datarray['uid'] = $params['uid'];
$datarray['link'] = $itemlink; $datarray['link'] = $itemlink;
$datarray['parent'] = $parent_id; $datarray['parent'] = $parent_id;
$datarray['type'] = $params['type']; $datarray['type'] = $params['type'];
$datarray['verb'] = $params['verb']; $datarray['verb'] = $params['verb'];
$datarray['otype'] = $params['otype']; $datarray['otype'] = $params['otype'];
$datarray['abort'] = false; $datarray['abort'] = false;
call_hooks('enotify_store', $datarray); call_hooks('enotify_store', $datarray);
if($datarray['abort']) { if($datarray['abort']) {
pop_lang();
return;
}
// create notification entry in DB
$r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')",
dbesc($datarray['hash']),
dbesc($datarray['name']),
dbesc($datarray['url']),
dbesc($datarray['photo']),
dbesc($datarray['date']),
intval($datarray['uid']),
dbesc($datarray['link']),
intval($datarray['parent']),
intval($datarray['type']),
dbesc($datarray['verb']),
dbesc($datarray['otype'])
);
$r = q("select id from notify where hash = '%s' and uid = %d limit 1",
dbesc($hash),
intval($params['uid'])
);
if($r)
$notify_id = $r[0]['id'];
else {
pop_lang();
return;
}
// we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
// After we've stored everything, look again to see if there are any duplicates and if so remove them
$p = null;
$p = q("select id from notify where ( type = %d or type = %d ) and link = '%s' and uid = %d order by id",
intval(NOTIFY_TAGSELF),
intval(NOTIFY_COMMENT),
dbesc($params['link']),
intval($params['uid'])
);
if($p && (count($p) > 1)) {
for ($d = 1; $d < count($p); $d ++) {
q("delete from notify where id = %d",
intval($p[$d]['id'])
);
}
// only continue on if we stored the first one
if($notify_id != $p[0]['id']) {
pop_lang(); pop_lang();
return; return False;
} }
// create notification entry in DB
$r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')",
dbesc($datarray['hash']),
dbesc($datarray['name']),
dbesc($datarray['url']),
dbesc($datarray['photo']),
dbesc($datarray['date']),
intval($datarray['uid']),
dbesc($datarray['link']),
intval($datarray['parent']),
intval($datarray['type']),
dbesc($datarray['verb']),
dbesc($datarray['otype'])
);
$r = q("select id from notify where hash = '%s' and uid = %d limit 1",
dbesc($hash),
intval($params['uid'])
);
if($r)
$notify_id = $r[0]['id'];
else {
pop_lang();
return False;
}
// we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
// After we've stored everything, look again to see if there are any duplicates and if so remove them
$p = null;
$p = q("select id from notify where ( type = %d or type = %d ) and link = '%s' and uid = %d order by id",
intval(NOTIFY_TAGSELF),
intval(NOTIFY_COMMENT),
dbesc($params['link']),
intval($params['uid'])
);
if($p && (count($p) > 1)) {
for ($d = 1; $d < count($p); $d ++) {
q("delete from notify where id = %d",
intval($p[$d]['id'])
);
}
// only continue on if we stored the first one
if($notify_id != $p[0]['id']) {
pop_lang();
return False;
}
}
$itemlink = $a->get_baseurl() . '/notify/view/' . $notify_id;
$msg = replace_macros($epreamble,array('$itemlink' => $itemlink));
$r = q("update notify set msg = '%s' where id = %d and uid = %d",
dbesc($msg),
intval($notify_id),
intval($params['uid'])
);
} }
$itemlink = $a->get_baseurl() . '/notify/view/' . $notify_id;
$msg = replace_macros($epreamble,array('$itemlink' => $itemlink));
$r = q("update notify set msg = '%s' where id = %d and uid = %d",
dbesc($msg),
intval($notify_id),
intval($params['uid'])
);
// send email notification if notification preferences permit // send email notification if notification preferences permit
if((intval($params['notify_flags']) & intval($params['type']))
|| $params['type'] == NOTIFY_SYSTEM
|| $params['type'] == "SYSTEM_EMAIL") {
require_once('include/bbcode.php'); logger('sending notification email');
if((intval($params['notify_flags']) & intval($params['type'])) || $params['type'] == NOTIFY_SYSTEM) {
logger('notification: sending notification email');
if (isset($params['parent']) AND (intval($params['parent']) != 0)) { if (isset($params['parent']) AND (intval($params['parent']) != 0)) {
$id_for_parent = $params['parent']."@".$hostname; $id_for_parent = $params['parent']."@".$hostname;
@ -410,16 +507,18 @@ function notification($params) {
} else { } else {
// If not, just "follow" the thread. // If not, just "follow" the thread.
$additional_mail_header .= "References: <${id_for_parent}>\nIn-Reply-To: <${id_for_parent}>\n"; $additional_mail_header .= "References: <${id_for_parent}>\nIn-Reply-To: <${id_for_parent}>\n";
logger("include/enotify: There's already a notification for this parent:\n" . print_r($r, true), LOGGER_DEBUG); logger("There's already a notification for this parent:\n" . print_r($r, true), LOGGER_DEBUG);
} }
} }
$textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n", // textversion keeps linebreaks
$body))),ENT_QUOTES,'UTF-8')); $textversion = strip_tags(str_replace("<br>","\n",html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",
$body))),ENT_QUOTES,'UTF-8')));
$htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), $htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"),
"<br />\n",$body))),ENT_QUOTES,'UTF-8'); "<br />\n",$body))),ENT_QUOTES,'UTF-8');
$datarray = array(); $datarray = array();
$datarray['banner'] = $banner; $datarray['banner'] = $banner;
$datarray['product'] = $product; $datarray['product'] = $product;
@ -494,9 +593,9 @@ function notification($params) {
// logger('text: ' . $email_text_body); // logger('text: ' . $email_text_body);
// use the EmailNotification library to send the message // use the Emailer class to send the message
enotify::send(array( Emailer::send(array(
'fromName' => $sender_name, 'fromName' => $sender_name,
'fromEmail' => $sender_email, 'fromEmail' => $sender_email,
'replyTo' => $sender_email, 'replyTo' => $sender_email,
@ -506,69 +605,11 @@ function notification($params) {
'textVersion' => $email_text_body, 'textVersion' => $email_text_body,
'additionalMailHeader' => $datarray['headers'], 'additionalMailHeader' => $datarray['headers'],
)); ));
return True;
} }
pop_lang(); return False;
} }
require_once('include/email.php');
class enotify {
/**
* Send a multipart/alternative message with Text and HTML versions
*
* @param fromName name of the sender
* @param fromEmail email fo the sender
* @param replyTo replyTo address to direct responses
* @param toEmail destination email address
* @param messageSubject subject of the message
* @param htmlVersion html version of the message
* @param textVersion text only version of the message
* @param additionalMailHeader additions to the smtp mail header
*/
static public function send($params) {
$fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
$messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
// generate a mime boundary
$mimeBoundary =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
// generate a multipart/alternative message header
$messageHeader =
$params['additionalMailHeader'] .
"From: $fromName <{$params['fromEmail']}>\n" .
"Reply-To: $fromName <{$params['replyTo']}>\n" .
"MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
// assemble the final multipart message body with the text and html types included
$textBody = chunk_split(base64_encode($params['textVersion']));
$htmlBody = chunk_split(base64_encode($params['htmlVersion']));
$multipartMessageBody =
"--" . $mimeBoundary . "\n" . // plain text section
"Content-Type: text/plain; charset=UTF-8\n" .
"Content-Transfer-Encoding: base64\n\n" .
$textBody . "\n" .
"--" . $mimeBoundary . "\n" . // text/html section
"Content-Type: text/html; charset=UTF-8\n" .
"Content-Transfer-Encoding: base64\n\n" .
$htmlBody . "\n" .
"--" . $mimeBoundary . "--\n"; // message ending
// send the message
$res = mail(
$params['toEmail'], // send to address
$messageSubject, // subject
$multipartMessageBody, // message body
$messageHeader // message headers
);
logger("notification: enotify::send header " . 'To: ' . $params['toEmail'] . "\n" . $messageHeader, LOGGER_DEBUG);
logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
}
}
?> ?>

View File

@ -3828,6 +3828,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
dbesc(datetime_convert()) dbesc(datetime_convert())
); );
} }
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($importer['uid']) intval($importer['uid'])
); );
@ -3841,20 +3842,24 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
if(($r[0]['notify-flags'] & NOTIFY_INTRO) && if(($r[0]['notify-flags'] & NOTIFY_INTRO) &&
(($r[0]['page-flags'] == PAGE_NORMAL) OR ($r[0]['page-flags'] == PAGE_SOAPBOX))) { (($r[0]['page-flags'] == PAGE_NORMAL) OR ($r[0]['page-flags'] == PAGE_SOAPBOX))) {
$email_tpl = get_intltext_template('follow_notify_eml.tpl');
$email = replace_macros($email_tpl, array(
'$requestor' => ((strlen($name)) ? $name : t('[Name Withheld]')),
'$url' => $url, notification(array(
'$myname' => $r[0]['username'], 'type' => NOTIFY_INTRO,
'$siteurl' => $a->get_baseurl(), 'notify_flags' => $r[0]['notify-flags'],
'$sitename' => $a->config['sitename'] 'language' => $r[0]['language'],
'to_name' => $r[0]['username'],
'to_email' => $r[0]['email'],
'uid' => $r[0]['uid'],
'link' => $a->get_baseurl() . '/notifications/intro',
'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : t('[Name Withheld]')),
'source_link' => $contact_record['url'],
'source_photo' => $contact_record['photo'],
'verb' => ($sharing ? ACTIVITY_FRIEND : ACTIVITY_FOLLOW),
'otype' => 'intro'
)); ));
$res = mail($r[0]['email'],
email_header_encode((($sharing) ? t('A new person is sharing with you at ') : t("You have a new follower at ")) . $a->config['sitename'],'UTF-8'),
$email,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
} }
} }

View File

@ -2229,3 +2229,22 @@ function is_a_date_arg($s) {
} }
return false; return false;
} }
/**
* remove intentation from a text
*/
function deindent($text, $chr="[\t ]", $count=NULL) {
$text = fix_mce_lf($text);
$lines = explode("\n", $text);
if (is_null($count)) {
$m = array();
$k=0; while($k<count($lines) && strlen($lines[$k])==0) $k++;
preg_match("|^".$chr."*|", $lines[$k], $m);
$count = strlen($m[0]);
}
for ($k=0; $k<count($lines); $k++){
$lines[$k] = preg_replace("|^".$chr."{".$count."}|", "", $lines[$k]);
}
return implode("\n", $lines);
}

View File

@ -6,6 +6,7 @@ require_once('include/plugin.php');
require_once('include/text.php'); require_once('include/text.php');
require_once('include/pgettext.php'); require_once('include/pgettext.php');
require_once('include/datetime.php'); require_once('include/datetime.php');
require_once('include/enotify.php');
function create_user($arr) { function create_user($arr) {
@ -365,3 +366,51 @@ function create_user($arr) {
return $result; return $result;
} }
/*
* send registration confirmation.
* It's here as a function because the mail is sent
* from different parts
*/
function send_register_open_eml($email, $sitename, $siteurl, $username, $password){
$preamble = deindent(t('
Dear %1$s,
Thank you for registering at %2$s. Your account has been created.
'));
$body = deindent(t('
The login details are as follows:
Site Location: %3$s
Login Name: %1$s
Password: %5$
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to %2$s.'));
$preamble = sprintf($preamble, $username, $sitename);
$body = sprintf($body, $email, $sitename, $siteurl, $username, $password);
notification(array(
'type' => "SYSTEM_EMAIL",
'to_email' => $email,
'subject'=> sprintf( t('Registration details for %s'), $sitename),
'preamble'=> $preamble,
'body' => $body));
}

View File

@ -4,6 +4,8 @@
* Friendica admin * Friendica admin
*/ */
require_once("include/remoteupdate.php"); require_once("include/remoteupdate.php");
require_once("include/enotify.php");
require_once("include/text.php");
/** /**
@ -419,9 +421,9 @@ function admin_page_site_post(&$a){
set_config('system','banner', $banner); set_config('system','banner', $banner);
} }
if ($info=="") { if ($info=="") {
del_config('config','info'); del_config('config','info');
} else { } else {
set_config('config','info',$info); set_config('config','info',$info);
} }
set_config('system','language', $language); set_config('system','language', $language);
set_config('system','theme', $theme); set_config('system','theme', $theme);
@ -429,12 +431,12 @@ function admin_page_site_post(&$a){
del_config('system','mobile-theme'); del_config('system','mobile-theme');
} else { } else {
set_config('system','mobile-theme', $theme_mobile); set_config('system','mobile-theme', $theme_mobile);
} }
if ( $singleuser === '---' ) { if ( $singleuser === '---' ) {
del_config('system','singleuser'); del_config('system','singleuser');
} else { } else {
set_config('system','singleuser', $singleuser); set_config('system','singleuser', $singleuser);
} }
set_config('system','maximagesize', $maximagesize); set_config('system','maximagesize', $maximagesize);
set_config('system','max_image_length', $maximagelength); set_config('system','max_image_length', $maximagelength);
set_config('system','jpeg_quality', $jpegimagequality); set_config('system','jpeg_quality', $jpegimagequality);
@ -473,7 +475,7 @@ function admin_page_site_post(&$a){
set_config('system','curl_timeout', $timeout); set_config('system','curl_timeout', $timeout);
set_config('system','dfrn_only', $dfrn_only); set_config('system','dfrn_only', $dfrn_only);
set_config('system','ostatus_disabled', $ostatus_disabled); set_config('system','ostatus_disabled', $ostatus_disabled);
set_config('system','ostatus_poll_interval', $ostatus_poll_interval); set_config('system','ostatus_poll_interval', $ostatus_poll_interval);
set_config('system','diaspora_enabled', $diaspora_enabled); set_config('system','diaspora_enabled', $diaspora_enabled);
set_config('config','private_addons', $private_addons); set_config('config','private_addons', $private_addons);
@ -524,32 +526,32 @@ function admin_page_site(&$a) {
foreach($files as $file) { foreach($files as $file) {
$f = basename($file); $f = basename($file);
$theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f); $theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
if (file_exists($file . '/mobile')) { if (file_exists($file . '/mobile')) {
$theme_choices_mobile[$f] = $theme_name; $theme_choices_mobile[$f] = $theme_name;
} }
else { else {
$theme_choices[$f] = $theme_name; $theme_choices[$f] = $theme_name;
} }
} }
} }
/* OStatus conversation poll choices */ /* OStatus conversation poll choices */
$ostatus_poll_choices = array( $ostatus_poll_choices = array(
"-2" => t("Never"), "-2" => t("Never"),
"-1" => t("At post arrival"), "-1" => t("At post arrival"),
"0" => t("Frequently"), "0" => t("Frequently"),
"60" => t("Hourly"), "60" => t("Hourly"),
"720" => t("Twice daily"), "720" => t("Twice daily"),
"1440" => t("Daily") "1440" => t("Daily")
); );
/* get user names to make the install a personal install of X */ /* get user names to make the install a personal install of X */
$user_names = array(); $user_names = array();
$user_names['---'] = t('Multi user instance'); $user_names['---'] = t('Multi user instance');
$users = q("SELECT username, nickname FROM `user`"); $users = q("SELECT username, nickname FROM `user`");
foreach ($users as $user) { foreach ($users as $user) {
$user_names[$user['nickname']] = $user['username']; $user_names[$user['nickname']] = $user['username'];
} }
/* Banner */ /* Banner */
$banner = get_config('system','banner'); $banner = get_config('system','banner');
@ -651,7 +653,7 @@ function admin_page_site(&$a) {
'$relocate_url' => array('relocate_url', t("New base url"), $a->get_baseurl(), "Change base url for this server. Sends relocate message to all DFRN contacts of all users."), '$relocate_url' => array('relocate_url', t("New base url"), $a->get_baseurl(), "Change base url for this server. Sends relocate message to all DFRN contacts of all users."),
'$enable_noscrape'=> array('enable_noscrape', t("Enable noscrape"), get_config('system','enable_noscrape'), t("The noscrape feature speeds up directory submissions by using JSON data instead of HTML scraping.")), '$enable_noscrape'=> array('enable_noscrape', t("Enable noscrape"), get_config('system','enable_noscrape'), t("The noscrape feature speeds up directory submissions by using JSON data instead of HTML scraping.")),
'$form_security_token' => get_form_security_token("admin_site") '$form_security_token' => get_form_security_token("admin_site")
)); ));
@ -745,38 +747,60 @@ function admin_page_users_post(&$a){
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() ); $pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() );
$users = ( x($_POST, 'user') ? $_POST['user'] : Array() ); $users = ( x($_POST, 'user') ? $_POST['user'] : Array() );
$nu_name = ( x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); $nu_name = ( x($_POST, 'new_user_name') ? $_POST['new_user_name'] : '');
$nu_nickname = ( x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : ''); $nu_nickname = ( x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : '');
$nu_email = ( x($_POST, 'new_user_email') ? $_POST['new_user_email'] : ''); $nu_email = ( x($_POST, 'new_user_email') ? $_POST['new_user_email'] : '');
check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) { if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
require_once('include/user.php'); require_once('include/user.php');
require_once('include/email.php');
$result = create_user( array('username'=>$nu_name, 'email'=>$nu_email, 'nickname'=>$nu_nickname, 'verified'=>1) );
if(! $result['success']) {
notice($result['message']);
return;
}
$nu = $result['user'];
$email_tpl = get_intltext_template("register_adminadd_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$username' => $nu['username'],
'$email' => $nu['email'],
'$password' => $result['password'],
'$uid' => $nu['uid'] ));
$res = mail($nu['email'], email_header_encode( sprintf( t('Registration details for %s'), $a->config['sitename']),'UTF-8'), $result = create_user( array('username'=>$nu_name, 'email'=>$nu_email, 'nickname'=>$nu_nickname, 'verified'=>1) );
$email_tpl, if(! $result['success']) {
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" notice($result['message']);
. 'Content-type: text/plain; charset=UTF-8' . "\n" return;
. 'Content-transfer-encoding: 8bit' ); }
if ($res) { $nu = $result['user'];
info( t('Registration successful. Email send to user').EOL ); $preamble = deindent(t('
} Dear %1$s,
} the administrator of %2$s has set up an account for you.'));
$body = deindent(t('
The login details are as follows:
Site Location: %1$s
Login Name: %2$s
Password: %3$s
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to %4$s.'));
$preamble = sprintf($preamble, $nu['username'], $a->config['sitename']);
$body = sprintf($body, $a->get_baseurl(), $nu['email'], $result['password'], $a->config['sitename']);
notification(array(
'type' => "SYSTEM_EMAIL",
'to_email' => $email,
'subject'=> sprintf( t('Registration details for %s'), $a->config['sitename']),
'preamble'=> $preamble,
'body' => $body));
}
if (x($_POST,'page_users_block')){ if (x($_POST,'page_users_block')){
foreach($users as $uid){ foreach($users as $uid){
@ -825,7 +849,7 @@ function admin_page_users(&$a){
} }
switch($a->argv[2]){ switch($a->argv[2]){
case "delete":{ case "delete":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
// delete user // delete user
require_once("include/Contact.php"); require_once("include/Contact.php");
user_remove($uid); user_remove($uid);
@ -833,7 +857,7 @@ function admin_page_users(&$a){
notice( sprintf(t("User '%s' deleted"), $user[0]['username']) . EOL); notice( sprintf(t("User '%s' deleted"), $user[0]['username']) . EOL);
}; break; }; break;
case "block":{ case "block":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
q("UPDATE `user` SET `blocked`=%d WHERE `uid`=%s", q("UPDATE `user` SET `blocked`=%d WHERE `uid`=%s",
intval( 1-$user[0]['blocked'] ), intval( 1-$user[0]['blocked'] ),
intval( $uid ) intval( $uid )
@ -889,7 +913,7 @@ function admin_page_users(&$a){
t('Normal Account'), t('Normal Account'),
t('Soapbox Account'), t('Soapbox Account'),
t('Community/Celebrity Account'), t('Community/Celebrity Account'),
t('Automatic Friend Account') t('Automatic Friend Account')
); );
$e['page-flags'] = $accounts[$e['page-flags']]; $e['page-flags'] = $accounts[$e['page-flags']];
$e['register_date'] = relative_date($e['register_date']); $e['register_date'] = relative_date($e['register_date']);
@ -1094,7 +1118,7 @@ function admin_page_plugins(&$a){
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
'$function' => 'plugins', '$function' => 'plugins',
'$plugins' => $plugins, '$plugins' => $plugins,
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token("admin_themes"),
)); ));
} }
@ -1298,7 +1322,7 @@ function admin_page_themes(&$a){
'$plugins' => $xthemes, '$plugins' => $xthemes,
'$experimental' => t('[Experimental]'), '$experimental' => t('[Experimental]'),
'$unsupported' => t('[Unsupported]'), '$unsupported' => t('[Unsupported]'),
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token("admin_themes"),
)); ));
} }
@ -1311,7 +1335,7 @@ function admin_page_themes(&$a){
function admin_page_logs_post(&$a) { function admin_page_logs_post(&$a) {
if (x($_POST,"page_logs")) { if (x($_POST,"page_logs")) {
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs'); check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : ''); $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
$debugging = ((x($_POST,'debugging')) ? true : false); $debugging = ((x($_POST,'debugging')) ? true : false);
@ -1390,7 +1414,7 @@ readable.");
'$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")), '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")),
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices), '$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
'$form_security_token' => get_form_security_token("admin_logs"), '$form_security_token' => get_form_security_token("admin_logs"),
)); ));
} }

View File

@ -14,6 +14,8 @@
* *
*/ */
require_once('include/enotify.php');
function dfrn_confirm_post(&$a,$handsfree = null) { function dfrn_confirm_post(&$a,$handsfree = null) {
if(is_array($handsfree)) { if(is_array($handsfree)) {
@ -67,7 +69,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
// These data elements may come from either the friend request notification form or $handsfree array. // These data elements may come from either the friend request notification form or $handsfree array.
if(is_array($handsfree)) { if(is_array($handsfree)) {
logger('dfrn_confirm: Confirm in handsfree mode'); logger('Confirm in handsfree mode');
$dfrn_id = $handsfree['dfrn_id']; $dfrn_id = $handsfree['dfrn_id'];
$intro_id = $handsfree['intro_id']; $intro_id = $handsfree['intro_id'];
$duplex = $handsfree['duplex']; $duplex = $handsfree['duplex'];
@ -94,9 +96,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if(strlen($dfrn_id)) if(strlen($dfrn_id))
$cid = 0; $cid = 0;
logger('dfrn_confirm: Confirming request for dfrn_id (issued) ' . $dfrn_id); logger('Confirming request for dfrn_id (issued) ' . $dfrn_id);
if($cid) if($cid)
logger('dfrn_confirm: Confirming follower with contact_id: ' . $cid); logger('Confirming follower with contact_id: ' . $cid);
/** /**
@ -114,7 +116,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
); );
if(! count($r)) { if(! count($r)) {
logger('dfrn_confirm: Contact not found in DB.'); logger('Contact not found in DB.');
notice( t('Contact not found.') . EOL ); notice( t('Contact not found.') . EOL );
notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL ); notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL );
return; return;
@ -148,6 +150,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$res = new_keypair(4096); $res = new_keypair(4096);
$private_key = $res['prvkey']; $private_key = $res['prvkey'];
$public_key = $res['pubkey']; $public_key = $res['pubkey'];
@ -205,7 +208,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if($user[0]['page-flags'] == PAGE_PRVGROUP) if($user[0]['page-flags'] == PAGE_PRVGROUP)
$params['page'] = 2; $params['page'] = 2;
logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA); logger('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
/** /**
* *
@ -219,7 +222,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$res = post_url($dfrn_confirm,$params); $res = post_url($dfrn_confirm,$params);
logger('dfrn_confirm: Confirm: received data: ' . $res, LOGGER_DATA); logger(' Confirm: received data: ' . $res, LOGGER_DATA);
// Now figure out what they responded. Try to be robust if the remote site is // Now figure out what they responded. Try to be robust if the remote site is
// having difficulty and throwing up errors of some kind. // having difficulty and throwing up errors of some kind.
@ -246,6 +249,12 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
notice( t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL ); notice( t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL );
} }
if(stristr($res, "<status")===false) {
// wrong xml! stop here!
notice( t('Unexpected response from remote site: ') . EOL . htmlspecialchars($res) . EOL );
return;
}
$xml = parse_xml_string($res); $xml = parse_xml_string($res);
$status = (int) $xml->status; $status = (int) $xml->status;
$message = unxmlify($xml->message); // human readable text of what may have gone wrong. $message = unxmlify($xml->message); // human readable text of what may have gone wrong.
@ -731,33 +740,21 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$combined = $r[0]; $combined = $r[0];
if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) { if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
$mutual = ($new_relation == CONTACT_IS_FRIEND);
push_lang($r[0]['language']); notification(array(
$tpl = (($new_relation == CONTACT_IS_FRIEND) 'type' => NOTIFY_CONFIRM,
? get_intltext_template('friend_complete_eml.tpl') 'notify_flags' => $r[0]['notify-flags'],
: get_intltext_template('intro_complete_eml.tpl')); 'language' => $r[0]['language'],
'to_name' => $r[0]['username'],
$email_tpl = replace_macros($tpl, array( 'to_email' => $r[0]['email'],
'$sitename' => $a->config['sitename'], 'uid' => $r[0]['uid'],
'$siteurl' => $a->get_baseurl(), 'link' => $a->get_baseurl() . '/contacts/' . $dfrn_record,
'$username' => $r[0]['username'], 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')),
'$email' => $r[0]['email'], 'source_link' => $r[0]['url'],
'$fn' => $r[0]['name'], 'source_photo' => $r[0]['photo'],
'$dfrn_url' => $r[0]['url'], 'verb' => ($mutual?ACTIVITY_FRIEND:ACTIVITY_FOLLOW),
'$uid' => $newuid ) 'otype' => 'intro'
); ));
require_once('include/email.php');
$res = mail($r[0]['email'], email_header_encode( sprintf( t("Connection accepted at %s") , $a->config['sitename']),'UTF-8'),
$email_tpl,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
if(!$res) {
// pointless throwing an error here and confusing the person at the other end of the wire.
}
pop_lang();
} }
// Send a new friend post if we are allowed to... // Send a new friend post if we are allowed to...

View File

@ -9,6 +9,8 @@
* *
*/ */
require_once('include/enotify.php');
if(! function_exists('dfrn_request_init')) { if(! function_exists('dfrn_request_init')) {
function dfrn_request_init(&$a) { function dfrn_request_init(&$a) {
@ -707,7 +709,7 @@ function dfrn_request_content(&$a) {
$auto_confirm = true; $auto_confirm = true;
if(! $auto_confirm) { if(! $auto_confirm) {
require_once('include/enotify.php');
notification(array( notification(array(
'type' => NOTIFY_INTRO, 'type' => NOTIFY_INTRO,
'notify_flags' => $r[0]['notify-flags'], 'notify_flags' => $r[0]['notify-flags'],

View File

@ -1,6 +1,8 @@
<?php <?php
require_once('include/email.php'); require_once('include/email.php');
require_once('include/enotify.php');
require_once('include/text.php');
function lostpass_post(&$a) { function lostpass_post(&$a) {
@ -32,23 +34,47 @@ function lostpass_post(&$a) {
if($r) if($r)
info( t('Password reset request issued. Check your email.') . EOL); info( t('Password reset request issued. Check your email.') . EOL);
$email_tpl = get_intltext_template("lostpass_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$username' => $username,
'$email' => $email,
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
));
$res = mail($email, email_header_encode(sprintf( t('Password reset requested at %s'),$a->config['sitename']),'UTF-8'), $sitename = $a->config['sitename'];
$email_tpl, $siteurl = $a->get_baseurl();
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" $resetlink = $a->get_baseurl() . '/lostpass?verify=' . $new_password;
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
$preamble = deindent(t('
Dear %1$s,
A request was recently received at "%2$s" to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.'));
$body = deindent(t('
Follow this link to verify your identity:
%1$s
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: %2$s
Login Name: %3$s'));
$preamble = sprintf($preamble, $username, $sitename);
$body = sprintf($body, $resetlink, $siteurl, $email);
notification(array(
'type' => "SYSTEM_EMAIL",
'to_email' => $email,
'subject'=> sprintf( t('Password reset requested at %s'),$sitename),
'preamble'=> $preamble,
'body' => $body));
goaway(z_root()); goaway(z_root());
} }
@ -63,9 +89,8 @@ function lostpass_content(&$a) {
dbesc($hash) dbesc($hash)
); );
if(! count($r)) { if(! count($r)) {
notice( t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed.") . EOL); $o = t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed.");
goaway(z_root()); return $o;
return;
} }
$uid = $r[0]['uid']; $uid = $r[0]['uid'];
$username = $r[0]['username']; $username = $r[0]['username'];
@ -94,22 +119,34 @@ function lostpass_content(&$a) {
info("Your password has been reset." . EOL); info("Your password has been reset." . EOL);
$sitename = $a->config['sitename'];
$siteurl = $a->get_baseurl();
// $username, $email, $new_password
$preamble = deindent(t('
Dear %1$s,
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
'));
$body = deindent(t('
Your login details are as follows:
$email_tpl = get_intltext_template("passchanged_eml.tpl"); Site Location: %1$s
$email_tpl = replace_macros($email_tpl, array( Login Name: %2$s
'$sitename' => $a->config['sitename'], Password: %3$s
'$siteurl' => $a->get_baseurl(),
'$username' => $username,
'$email' => $email,
'$new_password' => $new_password,
'$uid' => $newuid ));
$subject = sprintf( t('Your password has been changed at %s'), $a->config['sitename']); You may change that password from your account settings page after logging in.
'));
$res = mail($email, email_header_encode( $subject, 'UTF-8'), $email_tpl, $preamble = sprintf($preamble, $username);
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" $body = sprintf($body, $siteurl, $email, $new_password);
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' ); notification(array(
'type' => "SYSTEM_EMAIL",
'to_email' => $email,
'subject'=> sprintf( t('Your password has been changed at %s'),$sitename),
'preamble'=> $preamble,
'body' => $body));
return $o; return $o;
} }

View File

@ -1,7 +1,8 @@
<?php <?php
require_once('include/email.php'); require_once('include/enotify.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');
require_once('include/user.php');
if(! function_exists('register_post')) { if(! function_exists('register_post')) {
function register_post(&$a) { function register_post(&$a) {
@ -80,20 +81,12 @@ function register_post(&$a) {
set_pconfig($user['uid'],'system','invites_remaining',$num_invites); set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
} }
$email_tpl = get_intltext_template("register_open_eml.tpl"); send_register_open_eml(
$email_tpl = replace_macros($email_tpl, array( $user['email'],
'$sitename' => $a->config['sitename'], $a->config['sitename'],
'$siteurl' => $a->get_baseurl(), $a->get_baseurl(),
'$username' => $user['username'], $user['username'],
'$email' => $user['email'], $result['password']);
'$password' => $result['password'],
'$uid' => $user['uid'] ));
$res = mail($user['email'], email_header_encode( sprintf( t('Registration details for %s'), $a->config['sitename']),'UTF-8'),
$email_tpl,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
if($res) { if($res) {
@ -119,46 +112,40 @@ function register_post(&$a) {
dbesc($lang) dbesc($lang)
); );
$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email'])); // invite system
$r = q("SELECT `language` FROM `user` WHERE `email` = '%s' LIMIT 1",
//dbesc($a->config['admin_email'])
dbesc($adminlist[0])
);
if(count($r))
push_lang($r[0]['language']);
else
push_lang('en');
if($using_invites && $invite_id) { if($using_invites && $invite_id) {
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id)); q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
set_pconfig($user['uid'],'system','invites_remaining',$num_invites); set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
} }
$email_tpl = get_intltext_template("register_verify_eml.tpl"); // send email to admins
$email_tpl = replace_macros($email_tpl, array( $admin_mail_list = "'".implode("','", array_map(dbesc, explode(",", str_replace(" ", "", $a->config['admin_email']))))."'";
'$sitename' => $a->config['sitename'], $adminlist = q("SELECT uid, language, email FROM user WHERE email IN (%s)",
'$siteurl' => $a->get_baseurl(), $admin_mail_list
'$username' => $user['username'], );
'$email' => $user['email'],
'$password' => $result['password'],
'$uid' => $user['uid'],
'$hash' => $hash
));
$res = mail($a->config['admin_email'], email_header_encode( sprintf(t('Registration request at %s'), $a->config['sitename']),'UTF-8'),
$email_tpl,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
pop_lang(); foreach ($adminlist as $admin) {
notification(array(
if($res) { 'type' => NOTIFY_SYSTEM,
info( t('Your registration is pending approval by the site owner.') . EOL ) ; 'event' => 'SYSTEM_REGISTER_REQUEST',
goaway(z_root()); 'source_name' => $user['username'],
'source_mail' => $user['email'],
'source_nick' => $user['nickname'],
'source_link' => $a->get_baseurl()."/admin/users/",
'link' => $a->get_baseurl()."/admin/users/",
'source_photo' => $a->get_baseurl() . "/photo/avatar/".$user['uid'].".jpg",
'to_email' => $admin['mail'],
'uid' => $admin['uid'],
'language' => ($admin['language']?$admin['language']:'en'))
);
} }
info( t('Your registration is pending approval by the site owner.') . EOL ) ;
goaway(z_root());
} }
return; return;

View File

@ -1,6 +1,6 @@
<?php <?php
require_once('include/email.php'); require_once('include/enotify.php');
function user_allow($hash) { function user_allow($hash) {
@ -41,21 +41,12 @@ function user_allow($hash) {
push_lang($register[0]['language']); push_lang($register[0]['language']);
$email_tpl = get_intltext_template("register_open_eml.tpl"); send_register_open_eml(
$email_tpl = replace_macros($email_tpl, array( $user[0]['email'],
'$sitename' => $a->config['sitename'], $a->config['sitename'],
'$siteurl' => $a->get_baseurl(), $a->get_baseurl(),
'$username' => $user[0]['username'], $user[0]['username'],
'$email' => $user[0]['email'], $register[0]['password']);
'$password' => $register[0]['password'],
'$uid' => $user[0]['uid']
));
$res = mail($user[0]['email'], email_header_encode( sprintf(t('Registration details for %s'), $a->config['sitename']), 'UTF-8'),
$email_tpl,
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
pop_lang(); pop_lang();

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
Apreciat/da $myname,
Tens un nou seguidor en $sitename - '$requestor'.
Pots visitar el seu perfil en $url.
Iniciï sessió en el seu lloc per a aprovar o rebutjar/cancelar la sol·licitud.
$siteurl
$sitename

View File

@ -1,19 +0,0 @@
Apreciat/da $username,
Grans noticies... '$fn' a '$dfrn_url' ha acceptat la teva sol·licitud de connexió en '$sitename'.
Ara sous amics mutus i podreu intercanviar actualizacions de estatus, fotos, i correu electrónic
sense cap restricció.
Visita la teva pàgina de 'Contactes' en $sitename si desitja realizar qualsevol canvi en aquesta relació.
$siteurl
[Per exemple, pots crear un perfil independent amb informació que no esta disponible al públic en general
- i assignar drets de visualització a '$fn'].
$sitename

View File

@ -1,21 +0,0 @@
Apreciat/da $username,
'$fn' en '$dfrn_url' ha acceptat la teva petició
connexió a '$sitename'.
'$fn' ha optat per acceptar-te com a "fan", que restringeix certes
formes de comunicació, com missatges privats i algunes interaccions
amb el perfil. Si ets una "celebritat" o una pàgina de comunitat,
aquests ajustos s'aplican automàticament
'$fn' pot optar per extendre aixó en una relació més permisiva
en el futur.
Començaràs a rebre les actualizacions públiques de estatus de '$fn',
que apareixeran a la teva pàgina "Xarxa" en
$siteurl
$sitename

View File

@ -1,35 +0,0 @@
Apreciat/da $username,
S'ha rebut una sol·licitud en $sitename recentment per restablir
la teva contrasenya. Per confirmar aquesta sol·licitud, per favor seleccioni l'enllaç de
verificació sota o copia-ho i pega-ho en la barra d'adreces del teu navegador.
Si NO has sol·licitat aquest canvi, per favor NO segueixis l'enllaç indicat i ignora
i/o elimina aquest missatge.
La teva contrasenya no es canviarà tret que puguem verificar que ets la teva qui
va emetre aquesta sol·licitud.
Segueix aquest enllaç per verificar la teva identitat:
$reset_link
A continuació rebràs un missatge amb la nova contrasenya.
Després de accedir, podràs canviar la contrasenya del teu compte a la pàgina de
configuració.
Les dades d'accés són els següents:
Lloc: $siteurl
Nom: $email
Salutacions,
L'administració de $sitename

View File

@ -1,19 +0,0 @@
Apreciat/da $username,
La teva contrasenya ha estat modificada com has sol·licitat. Pren nota d'aquesta informació
(o canvía immediatament la contrasenya amb quelcom que recordis).
Les teves dades d'accés son les següents:
Lloc: $siteurl
Nom: $email
Contrasenya: $new_password
Després d'accedir pots canviar la contrasenya des de la pàgina de configuració del teu perfil.
$sitename

View File

@ -1,22 +0,0 @@
Apreciat/da $username,
Gràcies per registrar-te en $sitename. El teu compte ha estat creat.
Les dades d'accés són les següents:
Lloc: $siteurl
Nom: $email
Contrasenya: $password
Després d'accedir pots canviar la teva contrasenya a la pàgina de "Configuració".
Pren un moment per revisar les altres configuracions del compte en aquesta pàgina.
Gràcies i benvingut/da $sitename.

View File

@ -1,23 +0,0 @@
S'ha rebut la sol·licitud de registre d'un nou usuari en
$sitename que requereix la teva aprovació.
Les dades d'accés són els següents:
Nom Complet: $username
Lloc: $siteurl
Nom: $email
Per aprovar aquesta sol·licitud, visita el següent enllaç:
$siteurl/regmod/allow/$hash
Per denegar la sol·licitud i eliminar el compte, per favor visita:
$siteurl/regmod/deny/$hash
Gràcies.

View File

@ -1,13 +0,0 @@
Apreciat/da $myname,
Acabes de rebre una sol·licitud de connexió de '$requestor' en $sitename.
Pots visitar el seu perfil en $url.
Accedeix al teu lloc per a veure la presentació completa i acceptar o ignorar/cancel·lar la sol·licitud.
$siteurl
$sitename

View File

@ -1,14 +0,0 @@
Apreciat/da {{$myname}},
Tens un nou seguidor en {{$sitename}} - '{{$requestor}}'.
Pots visitar el seu perfil en {{$url}}.
Iniciï sessió en el seu lloc per a aprovar o rebutjar/cancelar la sol·licitud.
{{$siteurl}}
{{$sitename}}

View File

@ -1,20 +0,0 @@
Apreciat/da {{$username}},
Grans noticies... '{{$fn}}' a '{{$dfrn_url}}' ha acceptat la teva sol·licitud de connexió en '{{$sitename}}'.
Ara sous amics mutus i podreu intercanviar actualizacions de estatus, fotos, i correu electrónic
sense cap restricció.
Visita la teva pàgina de 'Contactes' en {{$sitename}} si desitja realizar qualsevol canvi en aquesta relació.
{{$siteurl}}
[Per exemple, pots crear un perfil independent amb informació que no esta disponible al públic en general
- i assignar drets de visualització a '{{$fn}}'].
{{$sitename}}

View File

@ -1,22 +0,0 @@
Apreciat/da {{$username}},
'{{$fn}}' en '{{$dfrn_url}}' ha acceptat la teva petició
connexió a '{{$sitename}}'.
'{{$fn}}' ha optat per acceptar-te com a "fan", que restringeix certes
formes de comunicació, com missatges privats i algunes interaccions
amb el perfil. Si ets una "celebritat" o una pàgina de comunitat,
aquests ajustos s'aplican automàticament
'{{$fn}}' pot optar per extendre aixó en una relació més permisiva
en el futur.
Començaràs a rebre les actualizacions públiques de estatus de '{{$fn}}',
que apareixeran a la teva pàgina "Xarxa" en
{{$siteurl}}
{{$sitename}}

View File

@ -1,36 +0,0 @@
Apreciat/da {{$username}},
S'ha rebut una sol·licitud en {{$sitename}} recentment per restablir
la teva contrasenya. Per confirmar aquesta sol·licitud, per favor seleccioni l'enllaç de
verificació sota o copia-ho i pega-ho en la barra d'adreces del teu navegador.
Si NO has sol·licitat aquest canvi, per favor NO segueixis l'enllaç indicat i ignora
i/o elimina aquest missatge.
La teva contrasenya no es canviarà tret que puguem verificar que ets la teva qui
va emetre aquesta sol·licitud.
Segueix aquest enllaç per verificar la teva identitat:
{{$reset_link}}
A continuació rebràs un missatge amb la nova contrasenya.
Després de accedir, podràs canviar la contrasenya del teu compte a la pàgina de
configuració.
Les dades d'accés són els següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Salutacions,
L'administració de {{$sitename}}

View File

@ -1,20 +0,0 @@
Apreciat/da {{$username}},
La teva contrasenya ha estat modificada com has sol·licitat. Pren nota d'aquesta informació
(o canvía immediatament la contrasenya amb quelcom que recordis).
Les teves dades d'accés son les següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Contrasenya: {{$new_password}}
Després d'accedir pots canviar la contrasenya des de la pàgina de configuració del teu perfil.
{{$sitename}}

View File

@ -1,23 +0,0 @@
Apreciat/da {{$username}},
Gràcies per registrar-te en {{$sitename}}. El teu compte ha estat creat.
Les dades d'accés són les següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Contrasenya: {{$password}}
Després d'accedir pots canviar la teva contrasenya a la pàgina de "Configuració".
Pren un moment per revisar les altres configuracions del compte en aquesta pàgina.
Gràcies i benvingut/da {{$sitename}}.

View File

@ -1,24 +0,0 @@
S'ha rebut la sol·licitud de registre d'un nou usuari en
{{$sitename}} que requereix la teva aprovació.
Les dades d'accés són els següents:
Nom Complet: {{$username}}
Lloc: {{$siteurl}}
Nom: {{$email}}
Per aprovar aquesta sol·licitud, visita el següent enllaç:
{{$siteurl}}/regmod/allow/{{$hash}}
Per denegar la sol·licitud i eliminar el compte, per favor visita:
{{$siteurl}}/regmod/deny/{{$hash}}
Gràcies.

View File

@ -1,14 +0,0 @@
Apreciat/da {{$myname}},
Acabes de rebre una sol·licitud de connexió de '{{$requestor}}' en {{$sitename}}.
Pots visitar el seu perfil en {{$url}}.
Accedeix al teu lloc per a veure la presentació completa i acceptar o ignorar/cancel·lar la sol·licitud.
{{$siteurl}}
{{$sitename}}

View File

@ -1,11 +0,0 @@
Cheic,
Jo soc a $sitename.
Els desenvolupadors de Friendica han alliberat una actualització $update recentment,
però quan vaig intentar actualitzar, quelcom terrible va anar malament.
Això necessita ser reparat aviat i no ho puc fer sol. Per favor, contacta amb
un desenvolupador de Friendica si no em pots ajudar per tu mateix. La meva base de dades es pot corrompre.
El missatge d'error va ser '$error'.
Ho lamento.
El teu servidor friendica a $siteurl

View File

@ -1,14 +0,0 @@
Drahý/Drahá $[myname],
Máte nového následovatele na $[sitename] - '$[requestor]'.
Můžete si zobrazit jeho profil na $[url].
Prosím, přihlaste se na Vašem webu pro odsouhlasení nebo ignorování/zrušení této žádosti
$[siteurl]
S pozdravem
$[sitename] administrátor

View File

@ -1,22 +0,0 @@
Drahý/Drahá $[username],
Skvělé zprávy... '$[fn]' na '$[dfrn_url]' akceptoval
Vaši žádost o spojení na '$[sitename]'.
Jste nyní vzájemnými přáteli a můžete si vyměňovat aktualizace statusu, fotografií a emailů
bez omezení.
Navštivte prosím stránku "Kontakty" na $[sitename] pokud si přejete provést
jakékoliv změny v tomto vztahu.
$[siteurl]
[Například můžete vytvořit separátní profil s informacemi, které nebudou
dostupné pro veřejnost - a přidělit práva k němu pro čtení pro '$[fn]'].
S pozdravem,
$[sitename] administrátor

View File

@ -1,22 +0,0 @@
Drahý/Drahá $[username],
'$[fn]' na '$[dfrn_url]' akceptoval
Vaši žádost o připojení na '$[sitename]'.
'$[fn]' se rozhodl Vás akceptovat jako "fanouška", což omezuje
určité druhy komunikace, jako jsou soukromé zprávy a určité profilové
interakce. Pokud se jedná o účet celebrity nebo o kumunitní stránky, tato nastavení byla
použita automaticky.
'$[fn]' se může rozhodnout rozšířit tento vztah na oboustraný nebo méně restriktivní
vztah v budoucnosti.
Nyní začnete získávat veřejné aktualizace statusu od '$[fn]',
které se objeví na Vaší stránce "Síť" na
$[siteurl]
S pozdravem,
$[sitename] administrátor

View File

@ -1,23 +0,0 @@
Milý/Milá $username,
Na webu $sitename byl zaregistrován požadavek na znovunastavení hesla k Vašemu účtu. Pro potvrzení této žádosti prosím klikněte na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeče.
Pokud jste o znovunastavení hesla NEŽÁDALI, prosím NEKLIKEJTE na tento odkaz a ignorujte tento e-mail nebo ho rovnou smažte.
Vaše heslo nebude změněno, dokud nebudeme mít potvrzení, že jste o tento požadavek zažádali právě Vy.
Klikněte na tento odkaz pro prověření Vaší identity:
$reset_link
Poté obdržíte další zprávu obsahující nové heslo.
Následně si toto heslo můžete změnit z vašeho účtu na stránce Nastavení.
Přihlašovací údaje jsou tato:
Adresa webu: $siteurl
Přihlašovací jméno: $email
S pozdravem,
$sitename administrátor

View File

@ -1,14 +0,0 @@
Milý/Milá $username,
Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
Vaše přihlašovací údaje jsou tato:
Adresa webu: $siteurl
Přihlašovací jméno: $email
Heslo: $new_password
Toto heslo si můžete změnit z vašeho účtu na stránce Nastavení poté, co se přihlásíte.
S pozdravem,
$sitename administrátor

View File

@ -1,23 +0,0 @@
Milý/milá $username,
Díky za registraci na $sitename. Váš účet byl vytvořen.
Vaše přihlašovací údaje jsou tato:
Adresa webu: $siteurl
Přihlašovací jméno: $email
Heslo: $password
Toto heslo si můžete změnit z vašeho účtu na stránce "Nastavení" poté, co se přihlásíte.
Věnujte prosím chvíli revizi dalších nastavení Vašeho účtu na této stránce.
Můžete také přidat některé základní informace do Vašeho defaultního profilu (na stránce "Profily"), čímž umožníte jiným lidem Vás snadněji nalézt.
Doporučujeme nastavit celé jméno, přidat profilové foto, přidat nějaká profilová "klíčová slova" (což je velmi užitečné pro hledání nových přátel) a zemi, ve které žijete. Nemusíte zadávat víc informací.
Plně respektujeme Vaše právo na soukromí a žádná z výše uvedených položek není povinná.
Pokud jste nový a neznáte na tomto webu nikoho jiného, zadáním těchto položek můžete získat nové a zajímavé přátele.
Díky a vítejte na $sitename.
S pozdravem,
$sitename administrátor

View File

@ -1,22 +0,0 @@
Na webu $sitename byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
Přihlašovací údaje jsou tato:
Celé jméno: $username
Adresa webu: $siteurl
Přihlašovací jméno: $email
Pro odsouhlasení tohoto požadavku prosím klikněte na následující odkaz:
$siteurl/regmod/allow/$hash
Pro zamítnutí žádosti a odstranění účtu prosím klikněte na tento odkaz:
$siteurl/regmod/deny/$hash
Díky.

View File

@ -1,15 +0,0 @@
Milý/Milá $username,
Právě jste obdržel/obdržela požadavek na spojení na webu $sitename
od '$requestor'.
Můžete navštívit jeho/její profil na následujícím odkazu $url.
Přihlaste se na Váš web k zobrazení kompletní žádosti a odsouhlaste nebo ignorujte/zrušte tuto žádost.
$siteurl
S pozdravem,
$sitename administrátor

View File

@ -1,15 +0,0 @@
Milý/Milá {{$username}},
Máte nového následovatele na {{$sitename}} - '{{$requestor}}'.
Můžete si prohlédnout jeho/její profil na {{$url}}.
Přihlaste se na váš server k odsouhlasení nebo ignorování/zrušení žádosti.
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,18 +0,0 @@
Milý/Milá {{$username}},
Skvělé zprávy... '{{$fn}}' na '{{$dfrn_url}}' odsouhlasil Váš požadavek na spojení na '{{$sitename}}'.
Jste nyní přátelé a můžete si vyměňovat aktualizace statusu, fotek a e-mailů bez omezení.
Pokud budete chtít tento vztah jakkoliv upravit, navštivte Vaši stránku "Kontakty" na {{$sitename}}.
{{$siteurl}}
(Nyní můžete například vytvořit separátní profil s informacemi, které nebudou viditelné veřejně, a nastavit právo pro zobrazení tohoto profilu pro '{{$fn}}').
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,18 +0,0 @@
Milý/Milá {{$username}},
'{{$fn}}' na '{{$dfrn_url}}' odsouhlasil Váš požadavek na spojení na '{{$sitename}}'.
'{{$fn}}' Vás označil za svého "fanouška", což jistým způsobem omezuje komunikaci (například v oblasti soukromých zpráv a některých profilových interakcí. Pokud je toto celebritní nebo komunitní stránka, bylo toto nastavení byla přijato automaticky.
'{{$fn}}' může v budoucnu rozšířit toto spojení na oboustranné nebo jinak méně restriktivní.
Nyní začnete dostávat veřejné aktualizace statusu od '{{$fn}}', které se objeví ve Vaší stránce "Síť" na webu
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,24 +0,0 @@
Milý/Milá {{$username}},
Na webu {{$sitename}} byl zaregistrován požadavek na znovunastavení hesla k Vašemu účtu. Pro potvrzení této žádosti prosím klikněte na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeče.
Pokud jste o znovunastavení hesla NEŽÁDALI, prosím NEKLIKEJTE na tento odkaz a ignorujte tento e-mail nebo ho rovnou smažte.
Vaše heslo nebude změněno, dokud nebudeme mít potvrzení, že jste o tento požadavek zažádali právě Vy.
Klikněte na tento odkaz pro prověření Vaší identity:
{{$reset_link}}
Poté obdržíte další zprávu obsahující nové heslo.
Následně si toto heslo můžete změnit z vašeho účtu na stránce Nastavení.
Přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,15 +0,0 @@
Milý/Milá {{$username}},
Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
Vaše přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Heslo: {{$new_password}}
Toto heslo si můžete změnit z vašeho účtu na stránce Nastavení poté, co se přihlásíte.
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,32 +0,0 @@
Drahý {{$username}},
administrátor webu {{$sitename}} pro Vás vytvořil uživatelský účet.
Vaše přihlašovací údaje jsou tyto:
Adresa webu: {{$siteurl}}
Uživatelské jméno: {{$email}}
Heslo: {{$password}}
Vaše heslo si můžete po přihlášení změnit na stránce
.
Prosím věnujte chvíli k revizi ostatních nastavení svého účtu.
Můžete také přidat některé základní informace do Vašeho defaultního profilu
(na stránce "Profily"), čímž umožníte jiným lidem Vás snadněji nalézt.
Doporučujeme nastavit celé jméno, přidat profilové foto
, přidat nějaká profilová "klíčová slova" (což je velmi užitečné pro hledání nových přátel) a
zemi, ve které žijete. Nemusíte zadávat víc
informací.
Plně respektujeme Vaše právo na soukromí a žádná z výše uvedených položek není povinná.
Pokud jste nový a neznáte na tomto webu nikoho jiného, zadáním těchto
položek můžete získat nové a zajímavé přátele.
Díky a vítejte na {{$sitename}}.
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,24 +0,0 @@
Milý/milá {{$username}},
Díky za registraci na {{$sitename}}. Váš účet byl vytvořen.
Vaše přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Heslo: {{$password}}
Toto heslo si můžete změnit z vašeho účtu na stránce "Nastavení" poté, co se přihlásíte.
Věnujte prosím chvíli revizi dalších nastavení Vašeho účtu na této stránce.
Můžete také přidat některé základní informace do Vašeho defaultního profilu (na stránce "Profily"), čímž umožníte jiným lidem Vás snadněji nalézt.
Doporučujeme nastavit celé jméno, přidat profilové foto, přidat nějaká profilová "klíčová slova" (což je velmi užitečné pro hledání nových přátel) a zemi, ve které žijete. Nemusíte zadávat víc informací.
Plně respektujeme Vaše právo na soukromí a žádná z výše uvedených položek není povinná.
Pokud jste nový a neznáte na tomto webu nikoho jiného, zadáním těchto položek můžete získat nové a zajímavé přátele.
Díky a vítejte na {{$sitename}}.
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,23 +0,0 @@
Na webu {{$sitename}} byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
Přihlašovací údaje jsou tato:
Celé jméno: {{$username}}
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Pro odsouhlasení tohoto požadavku prosím klikněte na následující odkaz:
{{$siteurl}}/regmod/allow/{{$hash}}
Pro zamítnutí žádosti a odstranění účtu prosím klikněte na tento odkaz:
{{$siteurl}}/regmod/deny/{{$hash}}
Díky.

View File

@ -1,16 +0,0 @@
Milý/Milá {{$username}},
Právě jste obdržel/obdržela požadavek na spojení na webu {{$sitename}}
od '{{$requestor}}'.
Můžete navštívit jeho/její profil na následujícím odkazu {{$url}}.
Přihlaste se na Váš web k zobrazení kompletní žádosti a odsouhlaste nebo ignorujte/zrušte tuto žádost.
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View File

@ -1,11 +0,0 @@
Ahoj,
Já jsem $sitename.
Vývojáři friendica nednávno uvolnili aktualizaci $update,
ale když jsem se ji snažil nainstalovat, nepovedlo se mi to.
Je to třeba rychle opravit a já to sám nedokážu. Prosím kontaktuj
vývojáře friendica, pokud mi nemůžeš pomoct ty sám. Moje databáze může být nekonzistentní.
Chybová zpráva je '$error'.
Je mi líto,
Tvůj web friendica na $siteurl

View File

@ -1,14 +0,0 @@
Hallo $[myname],
Du hast einen neuen Anhänger auf $[sitename] - '$[requestor]'.
Du kannst das Profil unter $[url] besuchen.
Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
$[siteurl]
beste Grüße,
$[sitename] Administrator

View File

@ -1,22 +0,0 @@
Hallo $[username],
Großartige Neuigkeiten... '$[fn]' auf '$[dfrn_url]' hat
deine Kontaktanfrage auf '$[sitename]' bestätigt.
Ihr seid nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und E-Mails
ohne Einschränkungen austauschen.
Rufe deine 'Kontakte' Seite auf $[sitename] auf, wenn du
Änderungen an diesem Kontakt vornehmen willst.
$[siteurl]
[Du könntest z.B. ein spezielles Profil anlegen, das Informationen enthält,
die nicht für die breite Öffentlichkeit sichtbar sein sollen und es für '$[fn]' zum Betrachten freigeben].
Beste Grüße,
$[sitename] Administrator

View File

@ -1,22 +0,0 @@
Hallo $[username],
'$[fn]' auf '$[dfrn_url]' akzeptierte
deine Verbindungsanfrage auf '$[sitename]'.
'$[fn]' hat entschieden dich als "Fan" zu akzeptieren, was zu einigen
Einschränkungen bei der Kommunikation führt - wie z.B. das Schreiben von privaten Nachrichten und einige Profil
Interaktionen. Sollte dies ein Promi-Konto oder eine Forum-Seite sein, werden die Einstellungen
automatisch angewandt.
'$[fn]' kann wählen, ob die Freundschaft in eine beidseitige oder alles erlaubende
Beziehung in der Zukunft erweitert wird.
Du empfängst ab sofort die öffentlichen Beiträge von '$[fn]',
auf deiner "Netzwerk" Seite.
$[siteurl]
Beste Grüße,
$[sitename] Administrator

View File

@ -1,32 +0,0 @@
Hallo $[username],
Auf $[sitename] wurde eine Anfrage zum Zurücksetzen deines
Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
weiter unten oder kopiere ihn in die Adressleiste deines Browsers.
Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
bitte diese E-Mail und den Link.
Dein Passwort wird nicht geändert solange wir nicht überprüfen
konnten, dass du die Anfrage gestellt hast.
Folge diesem Link um deine Identität zu verifizieren:
$[reset_link]
Du wirst eine weitere E-Mail erhalten mit dem neuen Passwort.
Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
Die Login-Details sind die folgenden:
Adresse der Seite:»$[siteurl]
Login Name:»$[email]
Grüße,
$[sitename] Administrator

View File

@ -1,20 +0,0 @@
Hallo $[username],
Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
Informationen in deinen Unterlagen auf (oder ändere dein Passwort sofort
in etwas, was du dir merken kannst).
Deine Login Daten wurden wie folgt geändert:
Adresse der Seite: $[siteurl]
Login Name: $[email]
Passwort: $[new_password]
Du kannst dein Passwort unter deinen Account-Einstellungen ändern, wenn du angemeldet bist.
Beste Grüße,
$[sitename] Administrator

View File

@ -1,34 +0,0 @@
Hallo $[username],
Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt.
Hier die Login Details:
Adresse der Seite: $[siteurl]
Login Name: $[email]
Passwort: $[password]
Du kannst und solltest das Passwort in den "Einstellungen" zu deinem Account ändern,
nachdem du dich erstmalig eingeloggt hast.
Bitte nimm dir einige Augenblicke Zeit, um die anderen Einstellungen auf der Seite kennenzulernen und zu überprüfen.
Eventuell möchtest du außerdem einige grundlegende Informationen in deinem Standardprofil (auf der "Profile" Seite) eintragen,
damit andere Leute dich einfacher finden können.
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profilbild hochzuladen,
sowie ein paar "Profil-Schlüsselwörter" einzutragen (um leichter Menschen mit gleichen Interessen zu finden) - und
vielleicht auch in welchen Land du lebst; falls du nicht konkreter
werden möchtest.
Wir respektieren dein Recht auf Privatsphäre und keine dieser Angaben ist notwendig.
Wenn du ganz neu bei Friendica bist und niemanden kennst, werden sie dir aber helfen
ein paar neue und interessante Freunde zu finden.
Danke und willkommen auf $[sitename].
Beste Grüße,
$[sitename] Administrator

View File

@ -1,25 +0,0 @@
Eine Neuanmeldung auf $[sitename] benötigt
deine Aufmerksamkeit.
Die Login-Einzelheiten sind die folgenden:
Kompletter Name: $[username]
Adresse der Seite: $[siteurl]
Login Name: $[email]
Um die Anfrage zu bestätigen besuche bitte:
$[siteurl]/regmod/allow/$[hash]
Um die Anfrage abzulehnen und den Account zu löschen besuche bitte:
$[siteurl]/regmod/deny/$[hash]
Danke!

View File

@ -1,17 +0,0 @@
Hallo $[myname],
du hast eine Kontaktanfrage von '$[requestor]' auf $[sitename]
erhalten.
Du kannst sein/ihr Profil unter $[url] finden.
Bitte melde dich an um die komplette Anfrage einzusehen
und die Kontaktanfrage zu bestätigen oder zu ignorieren oder abzulehnen.
$[siteurl]
Beste Grüße,
$[sitename] Administrator

View File

@ -1,15 +0,0 @@
Hallo {{$myname}},
Du hast einen neuen Anhänger auf {{$sitename}} - '{{$requestor}}'.
Du kannst das Profil unter {{$url}} besuchen.
Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
{{$siteurl}}
beste Grüße,
{{$sitename}} Administrator

View File

@ -1,23 +0,0 @@
Hallo {{$username}},
Großartige Neuigkeiten... '{{$fn}}' auf '{{$dfrn_url}}' hat
deine Kontaktanfrage auf '{{$sitename}}' bestätigt.
Ihr seid nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und Emails
ohne Einschränkungen austauschen.
Rufe deine 'Kontakte' Seite auf {{$sitename}} auf, wenn du
Änderungen an diesem Kontakt vornehmen willst.
{{$siteurl}}
[Du könntest z.B. ein spezielles Profil anlegen, das Informationen enthält,
die nicht für die breite Öffentlichkeit sichtbar sein sollen und es für '{{$fn}}' zum Betrachten freigeben].
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,23 +0,0 @@
Hallo {{$username}},
'{{$fn}}' auf '{{$dfrn_url}}' hat deine Verbindungsanfrage
auf '{{$sitename}}' akzeptiert.
'{{$fn}}' hat entschieden Dich als "Fan" zu akzeptieren, was zu einigen
Einschränkungen bei der Kommunikation führt - wie zB das Schreiben von privaten Nachrichten und einige Profil
Interaktionen. Sollte dies ein Promi-Konto oder eine Forum-Seite sein, werden die Einstellungen
automatisch angewandt.
'{{$fn}}' kann wählen, ob die Freundschaft in eine beidseitige oder alles erlaubende
Beziehung in der Zukunft erweitert wird.
Du empfängst ab sofort die öffentlichen Beiträge von '{{$fn}}',
auf deiner "Netzwerk" Seite.
{{$siteurl}}
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,33 +0,0 @@
Hallo {{$username}},
Auf {{$sitename}} wurde eine Anfrage zum Zurücksetzen deines
Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
weiter unten oder kopiere ihn in die Adressleiste deines Browsers.
Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
bitte diese Mail und den Link.
Dein Passwort wird nicht geändert werden solange wir nicht überprüfen
konnten, dass du die Anfrage gestellt hast.
Folge diesem Link um deine Identität zu verifizieren:
{{$reset_link}}
Du wirst eine weitere Email erhalten mit dem neuen Passwort.
Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
Die Login-Details sind die folgenden:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Grüße,
{{$sitename}} Administrator

View File

@ -1,21 +0,0 @@
Hallo {{$username}},
Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
Informationen in deinen Unterlagen auf (oder ändere dein Passwort sofort
in etwas, was du dir merken kannst).
Deine Login Daten wurden wie folgt geändert:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Passwort: {{$new_password}}
Du kannst dein Passwort unter deinen Account-Einstellungen ändern, wenn du angemeldet bist.
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,32 +0,0 @@
Hallo {{$username}},
der Administrator von {{$sitename}} hat einen Account für dich eingerichtet.
Hier die Login Details:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Passwort: {{$password}}
Du kannst und solltest das Passwort in den "Einstellungen" zu deinem Account ändern,
nachdem du dich erstmalig eingeloggt hast.
Bitte nimm dir einige Augenblicke Zeit, um die anderen Einstellungen auf der Seite kennenzulernen und zu überprüfen.
Eventuell möchtest du außerdem einige grundlegende Informationen in deinem Standardprofil (auf der "Profile" Seite) eintragen,
damit andere Leute dich einfacher finden können.
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profilbild hochzuladen,
sowie ein paar "Profil-Schlüsselwörter" einzutragen (um leichter Menschen mit gleichen Interessen zu finden) - und
vielleicht auch in welchen Land du lebst; falls du nicht konkreter
werden möchtest.
Wir respektieren dein Recht auf Privatsphäre und keine dieser Angaben ist notwendig.
Wenn du ganz neu bei Friendica bist und niemanden kennst, werden sie dir aber helfen
ein paar neue und interessante Freunde zu finden.
Danke und willkommen auf {{$sitename}}.
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,35 +0,0 @@
Hallo {{$username}},
Danke für deine Anmeldung auf {{$sitename}}. Dein Account wurde angelegt.
Hier die Login Details:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Passwort: {{$password}}
Du kannst und solltest das Passwort in den "Einstellungen" zu deinem Account ändern,
nachdem du dich erstmalig eingeloggt hast.
Bitte nimm dir einige Augenblicke Zeit, um die anderen Einstellungen auf der Seite kennenzulernen und zu überprüfen.
Eventuell möchtest du außerdem einige grundlegende Informationen in deinem Standardprofil (auf der "Profile" Seite) eintragen,
damit andere Leute dich einfacher finden können.
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profilbild hochzuladen,
sowie ein paar "Profil-Schlüsselwörter" einzutragen (um leichter Menschen mit gleichen Interessen zu finden) - und
vielleicht auch in welchen Land du lebst; falls du nicht konkreter
werden möchtest.
Wir respektieren dein Recht auf Privatsphäre und keine dieser Angaben ist notwendig.
Wenn du ganz neu bei Friendica bist und niemanden kennst, werden sie dir aber helfen
ein paar neue und interessante Freunde zu finden.
Danke und willkommen auf {{$sitename}}.
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,26 +0,0 @@
Eine Neuanmeldung auf {{$sitename}} benötigt
deine Aufmerksamkeit.
Die Login-Einzelheiten sind die folgenden:
Kompletter Name: {{$username}}
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Um die Anfrage zu bestätigen besuche bitte:
{{$siteurl}}/regmod/allow/{{$hash}}
Um die Anfrage abzulehnen und den Account zu löschen besuche bitte:
{{$siteurl}}/regmod/deny/{{$hash}}
Danke!

View File

@ -1,18 +0,0 @@
Hallo {{$myname}},
du hast eine Kontaktanfrage von '{{$requestor}}' auf {{$sitename}}
erhalten.
Du kannst sein/ihr Profil unter {{$url}} finden.
Bitte melde dich an um die komplette Anfrage einzusehen
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
{{$siteurl}}
Beste Grüße,
{{$sitename}} Administrator

View File

@ -1,12 +0,0 @@
Hi,
ich bin {{$sitename}}.
Die friendica Entwickler haben jüngst Update {{$update}} veröffentlicht,
aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.
Das sollte schnellst möglichst behoben werden und ich kann das nicht alleine machen.
Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein.
Die Fehlermeldung lautet '{{$error}}'.
Tut mir Leid!
Deine friendica Instanz auf {{$siteurl}}

View File

@ -1,11 +0,0 @@
Hi,
$sitename
Die friendica Entwickler haben jüngst Update $update veröffentlicht,
aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.
Das sollte schnellst möglich behoben werden und ich kann das nicht alleine machen.
Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein.
Die Fehlermeldung lautet '$error'.
Tut mir Leid!
Deine friendica Instanz auf $siteurl

View File

@ -1,14 +0,0 @@
Dear $[myname],
You have a new follower at $[sitename] - '$[requestor]'.
You may visit their profile at $[url].
Please login to your site to approve or ignore/cancel the request.
$[siteurl]
Regards,
$[sitename] administrator

View File

@ -1,22 +0,0 @@
Dear $[username],
Great news... '$[fn]' at '$[dfrn_url]' has accepted
your connection request at '$[sitename]'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at $[sitename] if you wish to make
any changes to this relationship.
$[siteurl]
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '$[fn]'].
Sincerely,
$[sitename] Administrator

View File

@ -1,22 +0,0 @@
Dear $[username],
'$[fn]' at '$[dfrn_url]' has accepted
your connection request at '$[sitename]'.
'$[fn]' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'$[fn]' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '$[fn]',
which will appear on your 'Network' page at
$[siteurl]
Sincerely,
$[sitename] Administrator

View File

@ -1,32 +0,0 @@
Dear $[username],
A request was recently received at $[sitename] to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.
Follow this link to verify your identity:
$[reset_link]
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: $[siteurl]
Login Name: $[email]
Sincerely,
$[sitename] Administrator

View File

@ -1,20 +0,0 @@
Dear $[username],
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
Your login details are as follows:
Site Location: $[siteurl]
Login Name: $[email]
Password: $[new_password]
You may change that password from your account settings page after logging in.
Sincerely,
$[sitename] Administrator

View File

@ -1,32 +0,0 @@
Dear {{$username}},
the administrator of {{$sitename}} has set up an account for you.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$password}}
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to {{$sitename}}.
Sincerely,
{{$sitename}} Administrator

View File

@ -1,34 +0,0 @@
Dear $[username],
Thank you for registering at $[sitename]. Your account has been created.
The login details are as follows:
Site Location: $[siteurl]
Login Name: $[email]
Password: $[password]
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to $[sitename].
Sincerely,
$[sitename] Administrator

View File

@ -1,26 +0,0 @@
A new user registration request was received at $[sitename] which requires
your approval.
The login details are as follows:
Full Name: $[username]
Site Location: $[siteurl]
Login Name: $[email]
To approve this request please visit the following link:
$[siteurl]/regmod/allow/$[hash]
To deny the request and remove the account, please visit:
$[siteurl]/regmod/deny/$[hash]
Thank you.

View File

@ -1,17 +0,0 @@
Dear $[myname],
You have just received a connection request at $[sitename]
from '$[requestor]'.
You may visit their profile at $[url].
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
$[siteurl]
Regards,
$[sitename] administrator

View File

@ -1,15 +0,0 @@
Dear {{$myname}},
You have a new follower at {{$sitename}} - '{{$requestor}}'.
You may visit their profile at {{$url}}.
Please login to your site to approve or ignore/cancel the request.
{{$siteurl}}
Regards,
{{$sitename}} administrator

View File

@ -1,23 +0,0 @@
Dear {{$username}},
Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
your connection request at '{{$sitename}}'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at {{$sitename}} if you wish to make
any changes to this relationship.
{{$siteurl}}
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '{{$fn}}'].
Sincerely,
{{$sitename}} Administrator

View File

@ -1,23 +0,0 @@
Dear {{$username}},
'{{$fn}}' at '{{$dfrn_url}}' has accepted
your connection request at '{{$sitename}}'.
'{{$fn}}' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'{{$fn}}' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '{{$fn}}',
which will appear on your 'Network' page at
{{$siteurl}}
Sincerely,
{{$sitename}} Administrator

View File

@ -1,33 +0,0 @@
Dear {{$username}},
A request was recently received at {{$sitename}} to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.
Follow this link to verify your identity:
{{$reset_link}}
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Sincerely,
{{$sitename}} Administrator

View File

@ -1,21 +0,0 @@
Dear {{$username}},
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
Your login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$new_password}}
You may change that password from your account settings page after logging in.
Sincerely,
{{$sitename}} Administrator

View File

@ -1,32 +0,0 @@
Dear {{$username}},
the administrator of {{$sitename}} has set up an account for you.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$password}}
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to {{$sitename}}.
Sincerely,
{{$sitename}} Administrator

View File

@ -1,35 +0,0 @@
Dear {{$username}},
Thank you for registering at {{$sitename}}. Your account has been created.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$password}}
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to {{$sitename}}.
Sincerely,
{{$sitename}} Administrator

View File

@ -1,27 +0,0 @@
A new user registration request was received at {{$sitename}} which requires
your approval.
The login details are as follows:
Full Name: {{$username}}
Site Location: {{$siteurl}}
Login Name: {{$email}}
To approve this request please visit the following link:
{{$siteurl}}/regmod/allow/{{$hash}}
To deny the request and remove the account, please visit:
{{$siteurl}}/regmod/deny/{{$hash}}
Thank you.

View File

@ -1,18 +0,0 @@
Dear {{$myname}},
You have just received a connection request at {{$sitename}}
from '{{$requestor}}'.
You may visit their profile at {{$url}}.
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
{{$siteurl}}
Regards,
{{$sitename}} administrator

View File

@ -1,12 +0,0 @@
Hey,
I'm {{$sitename}};
The friendica developers released update {{$update}} recently,
but when I tried to install it, something went terribly wrong.
This needs to be fixed soon and I can't do it alone. Please contact a
friendica developer if you can not help me on your own. My database might be invalid.
The error message is '{{$error}}'.
I'm sorry,
your friendica server at {{$siteurl}}

View File

@ -1,11 +0,0 @@
Hey,
I'm $sitename;
The friendica developers released update $update recently,
but when I tried to install it, something went terribly wrong.
This needs to be fixed soon and I can't do it alone. Please contact a
friendica developer if you can not help me on your own. My database might be invalid.
The error message is '$error'.
I'm sorry,
your friendica server at $siteurl

View File

@ -1,14 +0,0 @@
Kara $[myname],
Vi havas novan abonanton ĉe $[sitename] - '$[requestor]'.
Vi povas viziti ilian profilon ĉe $[url].
Bonvolu ensaluti en vian retejon por aprobi au malaprobi/nuligi la peton.
$[siteurl]
Salutoj,
[$sitename] administranto

View File

@ -1,22 +0,0 @@
Kara $[username],
Boegaj novaĵoj.... '$[fn]' ĉe '$[dfrn_url]' aprobis
vian kontaktpeton ĉe '$[sitename]'.
Vi nun estas reciprokaj amikoj kaj povas interŝanĝi afiŝojn, bildojn kaj mesaĝojn
senkatene.
Bonvolu viziti vian 'Kontaktoj' paĝon ĉe $[sitename] se vi volas
ŝangi la rilaton.
$[siteurl]
[Ekzempe, vi eble volas krei disiĝintan profilon kun informoj kiu ne
haveblas al la komuna publiko - kaj rajtigi '$[fn]' al ĝi]'
Salutoj,
$[sitename] administranto

View File

@ -1,22 +0,0 @@
Kara $[username],
'$[fn]' ĉe '$[dfrn_url]' akceptis
vian kontaktpeton ĉe '$[sitename]'.
'$[fn]' elektis vin kiel "admiranto", kio malpermesas
kelkajn komunikilojn - ekzemple privataj mesaĝoj kaj kelkaj profilrilataj
agoj. Se tio estas konto de komunumo aŭ de eminentulo, tiaj agordoj
aŭtomate aktiviĝis.
'$[fn]' eblas konverti la rilaton al ambaŭdirekta rilato
aŭ apliki pli da permesoj.
Vi ekricevos publikajn afiŝojn de '$[fn]',
kiuj aperos sur via 'Reto' paĝo ĉe
$[siteurl]
Salutoj,
$[sitename] administranto

View File

@ -1,32 +0,0 @@
Kara $[username],
$[sitename] ricevis peton por rekomencigi vian pasvorton.
Por konfirmi la peton, bonvolu klaki la sekvantan konfirmligilon
aŭ alglui ĝin en la adreskampo de via retumilo.
Se vi NE petis tiun ŝanĝon, bonvolu NE KLAKU la
sekvantan ligilon kaj ignoru aŭ forvisu ĉi-mesaĝon.
Ni ne ŝanĝu vian pasvorton se ni ne povas kontroli ĉu estas vi
kiu petis la ŝanĝon.
Sekvu ĉi tion ligilon por konfirmi vian identecon:
$[reset_link]
Poste, vi ricevos mesaĝon enhavonte la novan pasvorton.
Vi eblas ŝangi la pasvorton ĉe viaj kontdoagordoj paĝo post ensaluti.
La akreditaĵoj estas:
Retejo:»$[siteurl]
Salutnomo:»$[email]
Salutoj,
$[sitename] administranto

View File

@ -1,20 +0,0 @@
Kara $[username],
Via pasvorto estas ŝanĝita laŭ via peto. Bonvolu konservi ĉi tiun
informon (aŭ tuj ŝanĝu vian pasvorton al
iu kiun vi povas memori).
Jen viaj legitimaĵoj:
Retejo:»$[siteurl]
Salutnomo:»$[email]
Pasvorto:»$[new_password]
Vi eblas ŝanĝi la pasvorton ĉe la paĝo Agordoj -> Konto kiam vi estas ensalutita.
Salutoj,
$[sitename] administranto

View File

@ -1,34 +0,0 @@
Kara $[username],
Dankon pro via registrado ĉe $[sitename]. Vian konton estas kreita.
Jen viaj legitimaĵoj:
Retejo:»$[siteurl]
Salutnomo:»$[email]
Pasvorto:»$[password]
Vi eblas ŝanĝi la pasvorton ĉe la paĝo Agordoj -> Konto kiam vi estas
ensalutita.
Bonvolu preni kelkajn momentoj por kontroli la aliajn kontaktagordojn.
Eble vi volas aldoni kelkajn bazajn informojn al via profilo
(ĉe la paĝo "Profiloj"), tial vi troveblas al aliaj uzantoj.
Ni rekomendas agordi vian plenan noman, aldoni profilbildon,
kaj aldojo kelkajn ŝlosilvortojn (tre utila por trovi novajn amikojn) - kaj
eble en kiu lando vi loĝas, se vi ne volas pli specifa
ol tio.
Ni tute respektas vian privatecon, kaj neniu de tiuj agordoj necesas.
Se vi novas kaj ne konas iun ĉi tie, ili eble helpas
vin trovi novajn kaj interesajn amikojn.
Dankon kaj bonvenon ĉe $[sitename].
Salutoj,
$[sitename] administranto

View File

@ -1,25 +0,0 @@
Nova peto por registrado atendas ĉe $[sitename]
kaj bezonas vian aprobon.
Jen la detaloj de la peto:
Plena Nomo:»$[username]
Retejo:»$[siteurl]
Salutnomo:»$[email]
Aprobonte la peton, bonvolu klaki tiun ligilon:
$[siteurl]/regmod/allow/$[hash]
Malaprobonte kaj forviŝonte la konton, bonvolu klaki:
$[siteurl]/regmod/deny/$[hash]
Dankon!

View File

@ -1,17 +0,0 @@
Kara $[myname],
Vi ĵus ricevis kontaktpeton ĉe $[sitename]
de '$[requestor]'.
Vi eblas viziti la profilon de la petanto ĉe $[url].
Bonvolu ensaluti en la retejo por vidi la plenan prezenton
kaj aprobi aŭ ignori/nuligi la peton.
$[siteurl]
Salutoj,
$[sitename] administranto

View File

@ -1,15 +0,0 @@
Kara {{$myname}},
Vi havas novan abonanton ĉe {{$sitename}} - '{{$requestor}}'.
Vi povas viziti ilian profilon ĉe {{$url}}.
Bonvolu ensaluti en vian retejon por aprobi au malaprobi/nuligi la peton.
{{$siteurl}}
Salutoj,
[{{$sitename}}] administranto

View File

@ -1,23 +0,0 @@
Kara {{$username}},
Boegaj novaĵoj.... '{{$fn}}' ĉe '{{$dfrn_url}}' aprobis
vian kontaktpeton ĉe '{{$sitename}}'.
Vi nun estas reciprokaj amikoj kaj povas interŝanĝi afiŝojn, bildojn kaj mesaĝojn
senkatene.
Bonvolu viziti vian 'Kontaktoj' paĝon ĉe {{$sitename}} se vi volas
ŝangi la rilaton.
{{$siteurl}}
[Ekzempe, vi eble volas krei disiĝintan profilon kun informoj kiu ne
haveblas al la komuna publiko - kaj rajtigi '{{$fn}}' al ĝi]'
Salutoj,
{{$sitename}} administranto

View File

@ -1,23 +0,0 @@
Kara {{$username}},
'{{$fn}}' ĉe '{{$dfrn_url}}' akceptis
vian kontaktpeton ĉe '{{$sitename}}'.
'{{$fn}}' elektis vin kiel "admiranto", kio malpermesas
kelkajn komunikilojn - ekzemple privataj mesaĝoj kaj kelkaj profilrilataj
agoj. Se tio estas konto de komunumo aŭ de eminentulo, tiaj agordoj
aŭtomate aktiviĝis.
'{{$fn}}' eblas konverti la rilaton al ambaŭdirekta rilato
aŭ apliki pli da permesoj.
Vi ekricevos publikajn afiŝojn de '{{$fn}}',
kiuj aperos sur via 'Reto' paĝo ĉe
{{$siteurl}}
Salutoj,
{{$sitename}} administranto

Some files were not shown because too many files have changed in this diff Show More