Author |
Message |
sockettf
Hangin' Around

Joined: Mar 13, 2009
Posts: 28
|
Posted:
Wed Jun 24, 2009 4:37 am |
|
Got Sentinel running in two different sites, one is the last RN 2.3.1 and the other is a phpnuke 7.6 patched 3.1 site. When a hacker is blocked the email admin function does not work but the blocker and the htacces writing yes. (yes, the option "email" is checked in blocker configuration).
This issue happens in the two sites.
Any idea?
Does anyone got this issue?. |
|
|
|
 |
eldorado
Involved


Joined: Sep 10, 2008
Posts: 424
Location: France,Translator
|
Posted:
Wed Jun 24, 2009 5:42 am |
|
are they hosted at the same place?
Do you have email on user activation? |
|
|
|
 |
sockettf

|
Posted:
Wed Jun 24, 2009 7:19 am |
|
they are hosted at the same provider, but different accounts.
Email on user activación is ON and working fine, and all the rest modules working exept this Sentinel admin email.
Tegonuke Mailer is active on both (SMTP). |
|
|
|
 |
Palbin
Site Admin

Joined: Mar 30, 2006
Posts: 2583
Location: Pittsburgh, Pennsylvania
|
Posted:
Wed Jun 24, 2009 9:17 am |
|
Since you are using Tegonuke Mailer does that mean that you don't have access to the phpmail function?
I don't know if Sentinel is written to use Tegonuke Mailer. I would have to look or Montego would have to respond. |
_________________ "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan. |
|
|
 |
Palbin

|
Posted:
Wed Jun 24, 2009 9:19 am |
|
I will look tonight, but I would say that NS isn't written to use the Mailer. At least not in regular nuke. |
|
|
|
 |
sockettf

|
Posted:
Wed Jun 24, 2009 10:44 am |
|
NS is written to use the mailer, i think, here is the full function write_mail at nukesentinel.php:
Code:
function write_mail($banip, $blocker_row, $abmatch="") {
global $ab_config, $nuke_config, $db, $prefix, $user_prefix, $nsnst_const;
if($blocker_row['activate'] > 0 AND $blocker_row['activate'] < 6) {
$admincontact = explode("\r\n", $ab_config['admin_contact']);
if(!empty($nsnst_const['query_string']) && $nsnst_const['query_string'] > "") {
$query_url = $nsnst_const['query_string'];
} else {
$query_url = _AB_NOTAVAILABLE;
}
if(!empty($nsnst_const['get_string']) && $nsnst_const['get_string'] > "") {
$get_url = $nsnst_const['get_string'];
} else {
$get_url = _AB_NOTAVAILABLE;
}
if(!empty($nsnst_const['post_string']) && $nsnst_const['post_string'] > "") {
$post_url = $nsnst_const['post_string'];
} else {
$post_url = _AB_NOTAVAILABLE;
}
$subject = _AB_BLOCKEDFROM." ".$banip;
$message = _AB_CREATEDBY.": "._AB_NUKESENTINEL." ".$ab_config['version_number']."\n";
$message .= _AB_DATETIME.": ".date("Y-m-d H:i:s T \G\M\T O",$nsnst_const['ban_time'])."\n";
$message .= _AB_IPBLOCKED.": ".$banip."\n";
$message .= _AB_USERID.": ".$nsnst_const['ban_username']." (".$nsnst_const['ban_user_id'].")\n";
$message .= _AB_REASON.": ".$blocker_row['reason']."\n";
if($abmatch != "") { $message .= _AB_MATCH.": ".$abmatch."\n"; }
$message .= "--------------------\n";
$message .= _AB_REFERER.": ".$nsnst_const['referer']."\n";
$message .= _AB_USERAGENT.": ".$nsnst_const['user_agent']."\n";
$message .= _AB_HTTPHOST.": ".$nsnst_const['http_host']."\n";
$message .= _AB_SCRIPTNAME.": ".$nsnst_const['script_name']."\n";
$message .= _AB_QUERY.": ".$query_url."\n";
$message .= _AB_GET.": ".$get_url."\n";
$message .= _AB_POST.": ".$post_url."\n";
$message .= _AB_X_FORWARDED.": ".$nsnst_const['forward_ip']."\n";
$message .= _AB_CLIENT_IP.": ".$nsnst_const['client_ip']."\n";
$message .= _AB_REMOTE_ADDR.": ".$nsnst_const['remote_addr']."\n";
$message .= _AB_REMOTE_PORT.": ".$nsnst_const['remote_port']."\n";
$message .= _AB_REQUEST_METHOD.": ".$nsnst_const['request_method']."\n";
if($blocker_row['email_lookup'] == 1) {
$message .= "--------------------\n"._AB_WHOISFOR."\n";
// Copyright 2004(c) Raven PHP Scripts
if(!@file_get_contents("http://ws.arin.net/cgi-bin/whois.pl?queryinput=".$nsnst_const['remote_ip'])) {
$msg = ('Unable to query WhoIs information for '.$nsnst_const['remote_ip'].'.');
} else {
$data = @file_get_contents("http://ws.arin.net/cgi-bin/whois.pl?queryinput=".$nsnst_const['remote_ip']);
$data = explode('Search results for: ',$data);
$data = explode('#',$data[1]);
$data = explode('(NET-',strip_tags($data[0]));
if(empty($data[1])) $msg .= $data[0];
else {
$data = explode(')',$data[1]);
if(!@file_get_contents("http://ws.arin.net/cgi-bin/whois.pl?queryinput="."!%20NET-".strip_tags($data[0]))) {
$data = 'Unable to query WhoIs information for '.strip_tags($data[0]).'.';
} else {
$data = @file_get_contents("http://ws.arin.net/cgi-bin/whois.pl?queryinput="."!%20NET-".strip_tags($data[0]));
$data = explode('Search results for: ',$data);
$data = explode('Name',$data[1],2);
$data = explode('# ARIN WHOIS ',$data[1]);
}
$msg .= 'OrgName'.nl2br($data[0]);
}
}
$message .= strip_tags($msg);
} elseif($blocker_row['email_lookup'] == 2) {
$message .= "--------------------\n";
// Copyright 2004(c) NukeScripts
if(!@file_get_contents("http://dnsstuff.com/tools/whois.ch?ip=".$nsnst_const['remote_ip'])) {
$data = 'Unable to query WhoIs information for '.$nsnst_const['remote_ip'].'.';
} else {
$data = @file_get_contents("http://dnsstuff.com/tools/whois.ch?email=on&ip=".$nsnst_const['remote_ip']);
$data = str_replace("</H1><H5>", "\n", $data);
$data = str_replace("status = \"Getting WHOIS results...\";", "\n", $data);
$data = str_replace("status = \"Done!\";", "\n", $data);
}
$message .= strip_tags($data);
}
$adminmail = $nuke_config['adminmail'];
if (defined('TNML_IS_ACTIVE')) {
$params = array('batch' => 1);
tnml_fMailer($admincontact, $subject, $message, $adminmail, '', $params);
} else {
for($i=0, $maxi=count($admincontact); $i < $maxi; $i++) {
@mail($admincontact[$i], $subject, $message,"From: $adminmail\r\nX-Mailer: "._AB_NUKESENTINEL);
}
}
}
}
|
Note here, The mailer is used in different manner as I see in other modules. |
|
|
|
 |
Guardian2003
Site Admin

Joined: Aug 28, 2003
Posts: 6799
Location: Ha Noi, Viet Nam
|
Posted:
Wed Jun 24, 2009 11:38 am |
|
In non RavenNuke (tm) sites, Nuke Sentinel (tm) will use PHP's built in phpmail() function as it is the only option available.
Using you have the blocker configuration set to email you, which your first post indicates you have, then the first thing to rule out is your host having restrictions on the phpmail() function.
Some hosts do not allow it at all but if users are getting their activation email, that also seems unlikely to be the problem.
Moving on...
Is your NS admin email address an email address associated with your domain? Some hosts restrict phpmail() is the 'sender' email address is not for the same domain it is being sent from. |
|
|
|
 |
sockettf

|
Posted:
Wed Jun 24, 2009 12:21 pm |
|
In both sites the TN Mailer is installed and active the write_mail function is the same in both Sentinel versions (the installed and de included in RN). In this function the presence of TN Mailer is checked:
Code:if (defined('TNML_IS_ACTIVE')) {
....
....
|
Maybe the problem is the issue with the dnsstuff?
also, my NS email is my webmaster account assosiated to my domain. |
|
|
|
 |
Guardian2003

|
Posted:
Wed Jun 24, 2009 12:35 pm |
|
You can try removing the ampersand @ at the beginning of the mail function to see if any errors are recorded in your server error log. |
|
|
|
 |
sockettf

|
Posted:
Sat Jun 27, 2009 10:05 am |
|
As update: I've just changed in nukesentinel.php the line:
Code:if (defined('TNML_IS_ACTIVE')) {
|
to:
Code:if (!defined('TNML_IS_ACTIVE')) {
|
And started again to receive the "Blocked Abuse" emails in my webmaster IN box via PHP mail function.
Fixed with this, but there are some bad code related to TN Mailer in Sentinel I think. |
|
|
|
 |
Palbin

|
Posted:
Sat Jun 27, 2009 11:40 am |
|
I will make a mantis issue for the team to look into. Thanks! |
|
|
|
 |
montego
Site Admin

Joined: Aug 29, 2004
Posts: 9457
Location: Arizona
|
Posted:
Thu Aug 06, 2009 9:35 pm |
|
sockettf, sorry that this took so long to get to. I have been swamped this summer. I am the author of the TegoNuke(tm) Mailer. I would back out the "fix" you applied above as essentially what you have done is force NukeSentinel(tm) to use PHP's mail() function rather than the Mailer. But, I have to ask why you are even using the Mailer and SMTP if the mail() function is enabled on your site. I would just reset that bit of code back in nukesentinel.php, turn off the Mailer and be back in business.
However, if you want the real fix, here it goes. I wasn't handling all combinations of TO addresses correctly. All the other RavenNuke(tm) code passes both the email address and a from name, but NukeSentinel(tm) does not pass the from name. I just wasn't handling that case properly and so it was trying to send to an invalid email address. To fix this (to use what I have just committed to the 2.4.0 release of RavenNuke(tm)), do this:
=== OPEN FILE ===
includes/tegonuke/mailer/mailer.php
=== FIND CODE ===
Code:
/*
* Validate to and from information and build Swift Address objects
*/
if (!is_array($to)) {
$oRecipients = new Swift_Address($to);
} elseif (count($to) == 1) {
$oRecipients = new Swift_Address($to[0][0], (isset($to[0][1])) ? $to[0][1] : null);
} else {
$oRecipients =& new Swift_RecipientList();
foreach($to as $recipient) {
$oRecipients->addTo((is_array($recipient) and isset($recipient[0])) ? $recipient[0] : $recipient, (is_array($recipient) and isset($recipient[1])) ? $recipient[1] : null);
}
}
|
=== REPLACE WITH ===
Code:
/*
* Validate to and from information and build Swift Address objects
*/
if (!is_array($to)) {
$oRecipients = new Swift_Address($to);
} elseif (count($to) == 1) {
$oRecipients = new Swift_Address(
(is_array($to[0])) ? $to[0][0] : $to[0],
(is_array($to[0]) && isset($to[0][1])) ? $to[0][1] : null
);
} else {
$oRecipients =& new Swift_RecipientList();
foreach($to as $recipient) {
$oRecipients->addTo(
(is_array($recipient) && isset($recipient[0])) ? $recipient[0] : $recipient,
(is_array($recipient) && isset($recipient[1])) ? $recipient[1] : null
);
}
}
|
=== DONE ===
That should fix you right up. |
_________________ Only registered users can see links on this board! Get registered or login!
Only registered users can see links on this board! Get registered or login! |
|
|
 |
sockettf

|
Posted:
Fri Aug 07, 2009 2:59 am |
|
Thanks Montego for the real fix .
The main reason for why Im using the TN Mailer SMTP is the problem with the hotmail.com accounts, my hotmail users dont receive emails from php mail function. Only using SMTP the msn users can receibe notifications and activation email.
Thanks, again, I can go now with SMTP. |
|
|
|
 |
montego

|
Posted:
Tue Aug 11, 2009 6:23 am |
|
Ah, interesting, and very good to know. Thank you for the tip! |
|
|
|
 |
|