Freitag, 23. Januar 2009

PHP

Mailklasse in PHP mit Spamschutz

Aufgrund meines Artikels, sicheres Kontaktformular in PHP, habe ich eine kleine Mailklasse geschrieben, welche einfach zu benutzen ist und gegen Mailinjection-Attacken schützt.

Download Code!

  1. class SimpleMailException extends Exception {}
  2.  
  3. /**
  4.  * Simple mail class
  5.  * @author Mr. Foo <hello 4t mrfoo.de>
  6.  * @version 1.0
  7.  */
  8. class SimpleMail {
  9.        
  10.         /**
  11.          * Send a mail via php
  12.          *
  13.          * @param string $to
  14.          * @param string $subject
  15.          * @param string $text
  16.          * @param string $fromEmail
  17.          * @param string $fromText
  18.          */
  19.         public static function send($to, $subject, $text, $fromEmail, $fromText = '') {
  20.                 $from = 'From: %s <%s>';
  21.                
  22.                
  23.                 if(empty($fromText)) {
  24.                         $fromText = $fromEmail;
  25.                 } else {
  26.                         if(SimpleMail::isSpammer($fromText)) throw new SimpleMailException('Spamattack!');     
  27.                 }
  28.                
  29.                 if(SimpleMail::isSpammer($fromEmail)) throw new SimpleMailException('Spamattack!');            
  30.        
  31.                 $from = sprintf($from, $fromText, $fromEmail);
  32.                
  33.                 if(!mail($to, $subject, $text, $from)) {
  34.                         throw new Exception('Error while mail sending.');
  35.                 }
  36.         }
  37.  
  38.         /**
  39.          * Sanitizes var
  40.          *
  41.          * @param string $text
  42.          * @return string
  43.          */
  44.         public static function isSpammer($text) {
  45.                 return preg_match("/(\n+|\r+|%0A|%0D)/i", $text);
  46.         }
  47. }
  48.  
  49. // Verwendung
  50. try {
  51.         SimpleMail::send('somebody@example.com', 'Betreff', 'Ganz Toller Text', 'john@example.com', 'John Doe');       
  52. } catch (SimpleMailException $se) {
  53.         // Spamattack, eventuell IP-Logging etc.
  54.         die('Spammer!');       
  55. } catch(Exception $e) {
  56.         // Fehler beim Mailversenden
  57. }
  58.  
Bewertung: 4.50 von 5, 2 Stimme(n) 2651 Klicks
Antispam, Klasse, Mail, PHP
Von Mr.Foo in PHP am 23.01.09@18:38 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Sicheres Kontaktformular mit PHP - Spam verhindern
Viele Homepages besitzen ein Kontaktformular. Das man bei den meisten Formularen ohne Probleme Spam verschicken kann, wissen die wenigsten. Das Problem ist, dass man unter Umständen den Mailheader verändern kann. Somit kann man dem Mailer ein wenig meh
Weblog: Mr. Foo
Aufgenommen: Jan 23, 18:48

1 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

enrico - #1 - 28.12.2009 11:24 - (Antwort)

Wo in meine kontaktformular.php script und wie Mailklasse in PHP mit Spamschutz benutze?


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

Mailklasse in PHP mit Spamschutz

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen