PHPMailer v. mail () für ein einfaches Kontaktformular

8

Ich bin neu in PHP, habe aber ein gutes Verständnis für Dinge (habe noch keine Kurse gelernt).

Die Frage:

Was soll ich wählen? PHPMailer oder mail () für mein neues Kontaktformular.

Das Formular ist einfach:

%Vor%

Ich habe ungefähr 2.000 Besucher pro Tag und bekomme ungefähr 10 Einsendungen pro Tag, also brauche ich nichts Besonderes. =)

Verschiedene Fragen in meinem Kopf:

  • Wird PHPMailer mein Kontaktformular besser vor CC schützen: Injektion (Hauptproblem)? Ich kenne den anti-spambot display:none CSS Trick bereits.
  • Wird PHPMailer mir den Schritt ersparen, eine email_validator() Funktion schreiben zu müssen?
  • Wird PHPMailer mir zu irgendeinem anderen Zeitpunkt das Schreiben von benutzerdefinierten Funktionen ersparen?

Danke! Mit etwas Glück werde ich bald Fragen beantworten. Lol

    
Jeff 12.08.2009, 18:49
quelle

4 Antworten

11

Hier ist alles, woran ich in einer Sitzung denken konnte. Vergib mir, wenn es irgendwelche eklatanten Versäumnisse gibt.

Vorteile der Verwendung der integrierten Mail-Funktion von PHP, keine externe Bibliothek / Wrapper:

  • Du brauchst nichts außerhalb von PHP.
  • Sie müssen keine neue API lernen.
  • Sie müssen sich keine Sorgen um PHP machen aktualisieren oder so das Skript zu brechen.
  • Sie müssen sich keine Gedanken über eine machen aktualisierte Version funktioniert nicht auf Ihrem PHP-Installation.
  • Sie müssen sich keine Sorgen machen mögliche Sicherheitslücken als ein Ergebnis der Verwendung dieses Skripts.
  • Wenn es eine einfache Aufgabe ist, sind Sie fertig in ein paar Minuten.

Vorteile der Verwendung einer externen Bibliothek / eines externen Wrappers:

  • Wenn Sie mehr einführen müssen Komplexität in Ihre E-Mails, Sie kann das ganz einfach tun. Hinzufügen Anhänge, Inline-Bilder und dergleichen macht nicht viel Spaß mit PHP-Plain-Mail Funktion. Externe Bibliotheken (unter am wenigsten die Guten) haben mehr OOPish API. Das Hinzufügen eines Anhangs kann so einfach sein wie $message->addAttachment($file); , ohne mit Kopfzeilen, etc. herumspielen zu müssen.
  • Externe Bibliotheken verstecken besser die hässliche Komplexitäten von Aufgaben wie Anhänge hinzufügen, Zeichen Kodierungen und Inline-Bilder.
  • Wenn Sie jetzt eine Bibliothek verwenden, sparen Sie die Ärger, es in der Schule lernen zu müssen Zukunft, wenn Sie brauchen zusätzliche Komplexität / Funktionalität.
  • Externe Bibliotheken wahrscheinlich (ich bin wirklich nicht sicher, welche, und zu In welchem ​​Umfang) adressieren bestimmte Sicherheitslücken, die die Mail von PHP verursacht nicht.

Wenn ich an etwas anderes denken kann, werde ich es sicher hinzufügen.

    
karim79 12.08.2009, 19:14
quelle
1

Dies wird vielleicht nicht wirklich alle Ihre Fragen beantworten, aber es wird auch nicht weh tun, denke ich ...

Was auch immer Sie tun möchten, Ich würde nicht mit mail() gehen: Das Versenden einer Mail ist keine so einfache Aufgabe und die Verwendung einer vorhandenen Bibliothek / eines Frameworks wird immer eine gute Idee sein löst viele Probleme, über die Sie wahrscheinlich noch gar nicht nachgedacht haben - auch wenn Sie nicht viele Mails verschicken müssen.


Über deine spezifischen Fragen werden vielleicht andere Antworten etwas anderes sagen und / oder mehr Informationen erhalten, aber jede "gute" Bibliothek, die zum Versenden von Mails erstellt wurde, sollte sich mit solchen Problemen befassen ... Sonst solltest du wahrscheinlich nach einer anderen Bibliothek suchen ^

Wenn Sie ein paar dumme Nicht-Adressen testen, können Sie sich zu 100% sicher sein ;-)


Eine andere Lösung, um ganz sicher zu sein, ist die Quelle der Bibliothek zu überprüfen ;-)

In der Quelle von Version 2.2.1 finden Sie so etwas:

class.phpmailer.php , Funktion AddAnAddress , Zeile 413, Sie sehen Folgendes:

%Vor%

Und es scheint, dass diese Funktion von den anderen Funktionen verwendet wird, die eine Adresse hinzufügen ... Also, ich nehme an, es gibt irgendeine Art von Email-Adressen-Validierung ;-)
Das beantwortet mindestens eine deiner Fragen ^^


PHPMailer ist nicht die einzige Lösung, die existiert, übrigens; Es gibt viele andere, wie zum Beispiel:

Pascal MARTIN 12.08.2009 19:17
quelle
1

Wie Pascal MARTIN bereits erwähnt hat, ist das Senden einer E-Mail nicht so geradlinig und einfach, wie manche Leute gerade annehmen. Um Ihre Fragen direkt zu beantworten. Ja, PHPMailer führt zwar einige Validierungen durch, ist aber nicht besonders fortgeschritten, sollte aber für Ihre Zwecke ausreichen. Und PHPMailer spart Ihnen etwas Zeit, abhängig davon, welche benutzerdefinierten Funktionen Sie benötigen. Einige Dinge zu beachten:

  • HTML oder einfacher Text Wenn die E-Mails immer nur zu Ihnen gehen, ist dies wahrscheinlich nicht so ein großer Deal. Wenn Sie jedoch E-Mails an Ihre Benutzer senden (z. B. eine Bestätigungs-E-Mail), möchten Sie sowohl HTML- als auch Nur-Text-Clients unterstützen können. PHPMailer (und Zend_Mail) machen dies sehr einfach.
  • SMTP. Dies ist ein weiterer, der wirklich wichtig ist, wenn Sie E-Mails an Ihre Benutzer senden, aber nicht so sehr, wenn es nur eine E-Mail an Sie selbst ist. Mit der regulären mail () -Funktion von php wird die E-Mail über sendmail verschickt, die fast alle * nix-Installationen standardmäßig (vor allem Server) enthalten. Daher sind Spam-Filter nicht sehr freundlich dazu. Wenn Sie ein reguläres SMTP-Server-Setup mit einem vertrauenswürdigen MX-Eintrag eingerichtet haben (oder ein Google Mail-Konto haben), können Sie über SMTP senden, wodurch die Wahrscheinlichkeit verringert wird, dass Ihre E-Mails als Spam gekennzeichnet werden.

Zusätzlich zu PHPMailer ist Zend_Mail eine gute Sache (es ist Teil des Zend-Frameworks ). Dies kann jedoch ein bisschen für ein einfaches Kontaktformular sein.

    
Steven Surowiec 12.08.2009 19:31
quelle
0

PHPMailer ist meine Wahl, weil ich SMTP-E-Mails an Google senden kann, ohne Bibliotheken zu installieren oder einen Mailserver zu konfigurieren. So muss ich mich nicht um Spam-Probleme kümmern.

    
arbales 12.08.2009 18:53
quelle

Tags und Links