summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorŁukasz Wilenski <wooc@gazeta.pl>2011-10-27 17:33:16 +0000
committerŁukasz Wilenski <wooc@gazeta.pl>2011-10-27 17:33:16 +0000
commite24fed37f43c5fedf498dc2455cf0658b47dfc64 (patch)
tree243c8015cb1efe733ed673794a71d40ed39732f2 /includes
parente75045fce39eb7c2dfad971d1a475e007e0eb2ef (diff)
downloadwebtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.tar.gz
webtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.tar.bz2
webtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.zip
fix some webtrees messaging problem
Diffstat (limited to 'includes')
-rw-r--r--includes/authentication.php67
-rw-r--r--includes/functions/functions_mail.php17
2 files changed, 40 insertions, 44 deletions
diff --git a/includes/authentication.php b/includes/authentication.php
index e8f1ad1afd..9484f0fc93 100644
--- a/includes/authentication.php
+++ b/includes/authentication.php
@@ -290,42 +290,32 @@ function AddToSearchLog($log_message, $geds) {
function addMessage($message) {
global $TEXT_DIRECTION, $WEBTREES_EMAIL;
- //-- do not allow users to send a message to themselves
- if ($message['from']==$message['to']) {
- return false;
- }
-
$user_id_from=get_user_id($message['from']);
$user_id_to =get_user_id($message['to']);
require_once WT_ROOT.'includes/functions/functions_mail.php';
- if (!$user_id_to) {
- //-- the to user must be a valid user in the system before it will send any mails
- return false;
- }
-
// Switch to the "from" user's language
WT_I18N::init(get_user_setting($user_id_from, 'language'));
//-- setup the message body for the "from" user
- $email2 = $message['body'];
+ $copy_email = $message['body'];
if (isset($message['from_name']))
- $email2 = WT_I18N::translate('Your Name:')." ".$message['from_name']."\r\n".WT_I18N::translate('Email Address:')." ".$message['from_email']."\r\n\r\n".$email2;
+ $copy_email = WT_I18N::translate('Your Name:')." ".$message['from_name']."\r\n".WT_I18N::translate('Email Address:')." ".$message['from_email']."\r\n\r\n".$copy_email;
if (!empty($message['url'])) {
if (strpos($message['url'],WT_SERVER_NAME.WT_SCRIPT_PATH)!==0) {
$message['url']=WT_SERVER_NAME.WT_SCRIPT_PATH.$message['url'];
}
- $email2 .= "\r\n\r\n--------------------------------------\r\n\r\n".WT_I18N::translate('This message was sent while viewing the following URL: ')."\r\n".$message['url']."\r\n";
+ $copy_email .= "\r\n\r\n--------------------------------------\r\n\r\n".WT_I18N::translate('This message was sent while viewing the following URL: ')."\r\n".$message['url']."\r\n";
}
- $email2 .= "\r\n=--------------------------------------=\r\nIP ADDRESS: ".$_SERVER['REMOTE_ADDR']."\r\n";
- $email2 .= "DNS LOOKUP: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\r\n";
- $email2 .= "LANGUAGE: ".WT_LOCALE."\r\n";
- $subject2 = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
+ $copy_email .= "\r\n=--------------------------------------=\r\nIP ADDRESS: ".$_SERVER['REMOTE_ADDR']."\r\n";
+ $copy_email .= "DNS LOOKUP: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\r\n";
+ $copy_email .= "LANGUAGE: ".WT_LOCALE."\r\n";
+ $copy_subject = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
$from ='';
if (!$user_id_from) {
$from = $message['from'];
- $email2 = WT_I18N::translate('You sent the following message to a webtrees administrator:')."\r\n\r\n".$email2;
+ $copy_email = WT_I18N::translate('You sent the following message to a webtrees administrator:')."\r\n\r\n".$copy_email;
$fromFullName = $message['from'];
} else {
$fromFullName = getUserFullName($user_id_from);
@@ -335,33 +325,31 @@ function addMessage($message) {
$from = getUserEmail($user_id_from);
}
$toFullName=getUserFullName($user_id_to);
- $email2 = WT_I18N::translate('You sent the following message to a webtrees user:').' '.$toFullName."\r\n\r\n".$email2;
+ $copy_email = WT_I18N::translate('You sent the following message to a webtrees user:').' '.$toFullName."\r\n\r\n".$copy_email;
}
if ($message['method']!='messaging') {
- $subject1 = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
+ $oryginal_subject = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
if (!$user_id_from) {
- $email1 = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
+ $oryginal_email = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
if (!empty($message['from_name'])) {
- $email1 .= $message['from_name']."\r\n\r\n".$message['body'];
+ $oryginal_email .= $message['from_name']."\r\n\r\n".$message['body'];
} else {
- $email1 .= $from."\r\n\r\n".$message['body'];
+ $oryginal_email .= $from."\r\n\r\n".$message['body'];
}
} else {
- $email1 = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
- $email1 .= $fromFullName."\r\n\r\n".$message['body'];
+ $oryginal_email = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
+ $oryginal_email .= $fromFullName."\r\n\r\n".$message['body'];
}
if (!isset($message['no_from'])) {
if (stristr($from, $WEBTREES_EMAIL)) {
$from = getUserEmail(get_gedcom_setting(WT_GED_ID, 'WEBMASTER_USER_ID'));
}
- if (!$user_id_from) {
- $header2 = $WEBTREES_EMAIL;
- } else {
- $header2 = getUserEmail($user_id_to);
- }
- if (!empty($header2)) {
- if (!webtreesMail($from, $header2, $subject2, $email2)) {
+ // copy messages should be from: $WEBTREES_EMAIL
+ $copy_from = $WEBTREES_EMAIL;
+ if (!empty($copy_from)) {
+ // send the copy message to sender
+ if (!webtreesMail($from, $copy_from, $copy_subject, $copy_email)) {
return false;
}
}
@@ -386,17 +374,17 @@ function addMessage($message) {
->execute(array($message['from'], $_SERVER['REMOTE_ADDR'], get_user_id($message['to']), $message['subject'], $message['body']));
}
if ($message['method']!='messaging') {
- $subject1 = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
+ $oryginal_subject = "[".WT_I18N::translate('webtrees Message').($TEXT_DIRECTION=='ltr'?"] ":" [").$message['subject'];
if (!$user_id_from) {
- $email1 = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
+ $oryginal_email = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
if (!empty($message['from_name'])) {
- $email1 .= $message['from_name']."\r\n\r\n".$message['body'];
+ $oryginal_email .= $message['from_name']."\r\n\r\n".$message['body'];
} else {
- $email1 .= $from."\r\n\r\n".$message['body'];
+ $oryginal_email .= $from."\r\n\r\n".$message['body'];
}
} else {
- $email1 = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
- $email1 .= $fromFullName."\r\n\r\n".$message['body'];
+ $oryginal_email = WT_I18N::translate('The following message has been sent to your webtrees user account from ');
+ $oryginal_email .= $fromFullName."\r\n\r\n".$message['body'];
}
$toFullName=getUserFullName($user_id_to);
if (!get_site_setting('SMTP_SIMPLE_MAIL')) {
@@ -405,7 +393,8 @@ function addMessage($message) {
$to = getUserEmail($user_id_to);
}
if (getUserEmail($user_id_to)) {
- if (!webtreesMail($to, $from, $subject1, $email1)) {
+ // send the original message
+ if (!webtreesMail($to, $from, $oryginal_subject, $oryginal_email)) {
return false;
}
}
diff --git a/includes/functions/functions_mail.php b/includes/functions/functions_mail.php
index a713543f31..e36f7dfc58 100644
--- a/includes/functions/functions_mail.php
+++ b/includes/functions/functions_mail.php
@@ -130,14 +130,14 @@ function webtreesMail($to, $from, $subject, $message) {
$mail_object->Username = $SMTP_AUTH_USER;
$mail_object->Password = $SMTP_AUTH_PASS;
}
+ $mail_object->Host = $SMTP_HOST;
+ $mail_object->Port = $SMTP_PORT;
+ $mail_object->Hostname = $SMTP_HELO;
if ($SMTP_SSL=='ssl') {
$mail_object->SMTPSecure = 'ssl';
} else if ($SMTP_SSL=='tls') {
$mail_object->SMTPSecure = 'tls';
}
- $mail_object->Host = $SMTP_HOST;
- $mail_object->Port = $SMTP_PORT;
- $mail_object->Hostname = $SMTP_HELO;
$from_name = '';
if (!get_site_setting('SMTP_SIMPLE_MAIL')) {
preg_match('/<(.*)>/', $to, $matches);
@@ -148,7 +148,7 @@ function webtreesMail($to, $from, $subject, $message) {
$from = $matches[1];
}
}
- $mail_object->From = $from;
+ $mail_object->SetFrom($from, $from_name);
if ((!empty($SMTP_FROM_NAME) && $from!=$SMTP_AUTH_USER) || !empty($from_name)) {
if (!empty($from_name)) {
$mail_object->FromName = $from_name.' - '.$SMTP_FROM_NAME;
@@ -184,7 +184,14 @@ function webtreesMail($to, $from, $subject, $message) {
}
} elseif ($SMTP_ACTIVE=='internal') {
// use original PHP mail sending function
- mail($to, hex4email($subject, 'UTF-8'), $message, $extraHeaders);
+ if (!mail($to, hex4email($subject, 'UTF-8'), $message, $extraHeaders)) {
+ echo WT_I18N::translate('Message was not sent'), '<br />';
+ echo /* I18N: %s is an error message */ WT_I18N::translate('Mailer error: PHP mail() failed'), '<br />';
+ return false;
+ } else {
+ // original PHP mail sending function OK
+ return true;
+ }
}
}