..:::Locul de discutie al pasionatilor de IT:::.
...::::BINE ATI VENIT PE FORUMUL NOSTRU::::....

..:::Locul de discutie al pasionatilor de IT:::.


 
AcasaCalendarFAQCautareMembriGrupuriInregistrareConectare
Top postatori
Admin (33)
 
Foxache (32)
 
Flavius1212 (22)
 
BogdanRZM (22)
 
Spywaree (15)
 
PunKst4R (14)
 
licitatii (9)
 
Shawn_Carter (7)
 
DevilCs RPG (7)
 
Arpy29 (6)
 
Cate o muzica buna din cand in cand
Smiley feat. Cheloo - Plec pe Marte
Ultimele subiecte
» Samp.T4P.Ro - WWW.T4P.Ro
Vin Aug 08, 2014 7:43 pm Scris de TheParker77

» Samp.T4P.Ro
Lun Iul 28, 2014 5:15 pm Scris de TheParker77

» RPG REDZMAAX COM
Sam Iul 12, 2014 9:01 pm Scris de BogdanRZM

» RPG REDZMAAX COM
Sam Iul 12, 2014 8:59 pm Scris de BogdanRZM

» Haida pe pronion
Joi Iul 10, 2014 5:58 pm Scris de Shv3ts!*

» Paysafecard
Lun Iun 30, 2014 7:06 am Scris de paulinhio17

» Domenii GRATIS
Dum Mai 25, 2014 1:10 am Scris de valvis

» REDZMAX.COM-Let the gammeddon begin!
Lun Apr 14, 2014 3:21 am Scris de shadowRZM

» REDZMAX - LET THE GAMEDDON BEGIN!
Dum Apr 13, 2014 3:00 am Scris de BogdanRZM

»  como hackear facebook hackear facebook Rapido hackear facebook
Dum Apr 06, 2014 4:01 am Scris de ady1994

Radio Hit Party


Distribuiti | 
 

 Cum limitam functia mail() din PHP ?

Vezi subiectul anterior Vezi subiectul urmator In jos 
AutorMesaj
Admin
Admin


Mesaje : 33
Reputatie : 0
Data de inscriere : 07/05/2010
Varsta : 23
Localizare : Corcova

MesajSubiect: Cum limitam functia mail() din PHP ?   Dum Mai 09, 2010 5:42 am

Cum PHP nu ofera o solutie pentru limitarea numarului de mailuri trimise cu functia mail() si in majoritatea cazurilor spamerii folosesc functia mail() trebuie gasita o solutie de a limita numarul de mailuri trimise de un utilizator. Am facut un misc script in Perl care face asta.
Modul de functionare e relativ simplu, scriptul este apelat de PHP la trimiterea unui mail. In script se fac niste verificari si daca userul a trimis mai putin de 200 de mailuri (se poate schimba) in ziua respectiva mesajul este trimis. In caz contrar mesajul este ignorat.

Cod:
#!/usr/bin/perl
#
# (C) Agkelos, webmaster@aberez.eu
#

use POSIX;
use define LIMITA => 200;

if($> != 0 ) {
my $count=0;
if( open(LOG,"/var/log/phpmail.log") ){
while(<LOG>){
if( $_ =~ /$>/ ){
$count++;
}
}
close(LOG);
}

if( open(LOG,">>/var/log/phpmail.log") ){
my $sender = getcwd.$ENV{'SCRIPT_FILENAME'};
my $data = `date`;
chomp $data;
if( $count > LIMITA ){
print LOG "$data:$>:$sender:ignored \n";
}else{
print LOG "$data:$>:$sender:sent \n";
exec {"/usr/sbin/sendmail"} ('/usr/bin/sendmail',@ARGV);
}
close(LOG);
}
}else{
exec {"/usr/sbin/sendmail"} ('/usr/bin/sendmail',@ARGV);
}


Cum este un hack, nu o solutie oferita de distribuitor, trebuie facute cateva mici modificari pentru ca scriptul sa functioneze corect:
1. Se creaza fisierul /var/log/phpmail.log caruia i se pun permisiunile corecte (rw-rw-rw-);
2. Se creaza un cron care in fiecare zi, la ora 00:00, goleste continutul fisierului phpmail.log ( cp /dev/null /var/log/phpmail.log ) - optional se poate face un script care pastreaza fisierele vechi;
3. Se salveaza codul de mai sus in /usr/bin/sendmail, fisier caruia i se da drept de executie - 755;
4. Se modifica in php.ini directiva sendmail_path sa pointeze catre /usr/bin/sendmail, nu catre /usr/sbin/sendmail (observat bin in loc de sbin) cum e default;
5. Modificati use define LIMITA => 200; sa corespunda unei valori care o considerati optima;

Daca astea sunt facute nu mai trebuie nici o modificare (nici macar restart).

cheers
Sus In jos
Vezi profilul utilizatorului http://zonait.hitforum.ro
 
Cum limitam functia mail() din PHP ?
Vezi subiectul anterior Vezi subiectul urmator Sus 
Pagina 1 din 1
 Subiecte similare
-
» Machiajul-tips&tricks
» Flori artificiale(2)
» Ne bem cafeaua impreuna! - 21
» Quilling-Arta de a rula hartia (16)
» Targuri hand-made II

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
..:::Locul de discutie al pasionatilor de IT:::. :: Tutoriale-
Mergi direct la: