diff options
| 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 |
| commit | e24fed37f43c5fedf498dc2455cf0658b47dfc64 (patch) | |
| tree | 243c8015cb1efe733ed673794a71d40ed39732f2 /includes | |
| parent | e75045fce39eb7c2dfad971d1a475e007e0eb2ef (diff) | |
| download | webtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.tar.gz webtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.tar.bz2 webtrees-e24fed37f43c5fedf498dc2455cf0658b47dfc64.zip | |
fix some webtrees messaging problem
Diffstat (limited to 'includes')
| -rw-r--r-- | includes/authentication.php | 67 | ||||
| -rw-r--r-- | includes/functions/functions_mail.php | 17 |
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; + } } } |
