Basit İletişim Formu için mail v PHPMailer ()

4 Cevap

Ben PHP için yeni duyuyorum, ama şeylerin iyi bir kavrayışa (henüz sınıfları öğrenmiş değil) var.

The question:

Hangi seçim? Benim yeni iletişim formu için PHPMailer veya posta ().

Form basittir:

Your name:
Your email:
Subject:
Body:

Ben günde yaklaşık 2.000 ziyaretçi var ve günde yaklaşık 10 başvuru almak, bu yüzden çok süslü bir şey gerekmez. =)

Miscellaneous questions in my head:

  • Enjeksiyon (büyük endişe): PHPMailer iyi CC benim İletişim Formunu korumak için gidiyor? Zaten anti-spambot display:none CSS kandırmak biliyorum.
  • PHPMailer bana bir email_validator() fonksiyon yazmak zorunda adımı kurtaracak?
  • PHPMailer bana herhangi bir özel fonksiyonlar yazmak zorunda başka bir zaman kurtaracak?

Teşekkürler! Herhangi bir şans ile, yakında sorulara cevap olacak. Lol

4 Cevap

Burada herhangi bir göze çarpan eksiklikler varsa beni affet, bir oturuşta tüm düşünebildiğim olduğunu.

PHP'nin yerleşik posta işlevi, hiçbir dış kütüphane / sarıcı kullanarak Avantajları:

  • You don't need anything outside of PHP.
  • Yeni bir API öğrenmek gerekmez.
  • You don't have to worry about a PHP upgrade or such breaking the script.
  • You don't have to worry about an updated version not working on your PHP installation.
  • You don't have to worry about potential security vulnerabilities as a result of using that script.
  • If it's a simple task, you'll be done in a few minutes.

Harici bir kütüphane / sarıcı kullanarak Avantajları:

  • If you need to introduce more complexity into your emailing, you can do so quite easily. Adding attachments, inline images and such are not much fun using PHP plain mail function. External libraries (at least the good ones) have a more OOPish API. Adding an attachment can be as easy as $message->addAttachment($file); without having to play around with headers, etc.
  • External libraries better hide the ugly complexities of tasks such as adding attachments, character encodings and inline images.
  • Using a library now will save you the hassle of having to learn it in the future when you do need the additional complexity/functionality.
  • External libraries probably (I'm really not sure which ones, and to what extent) address certain vulnerabilities that PHP's mail does not.

Ben başka bir şey düşünmek durumunda, bunu eklemek için emin olacağım.

Bu belki gerçekten tüm sorularınıza cevap vermez, ama o da zarar vermez, sanırım ...

Eğer yapmak istediğiniz ne olursa olsun, I would not go with mail() : Bir posta gönderme gibi kolay bir iş değildir, ve mevcut bir kütüphane / framework kullanarak her zaman iyi bir fikir olacaktır: bu muhtemelen pek çok sorunları çözecek bile düşündüm değil - sen postaların çok göndermek gerekmez bile.


About your specific questions, maybe other answers will say something else and/or get your more informations, but any "good" library created to send mails should deal with those kind of problems... Else, you should probably search for another library ^^

Yine de, aptal olmayan adresleri birkaç test% 100 emin olmasını sağlayacaktır ;-)


Another solution to be quite sure is to check the source of the library ;-)

Sürüm 2.2.1 kaynağında, bu gibi şeyler bulabilirsiniz:

class.phpmailer.php, fonksiyon AddAnAddress, satır 413, bu görürsünüz:

if (!self::ValidateAddress($address)) {
  $this->SetError($this->Lang('invalid_address').': '. $address);
  if ($this->exceptions) {
    throw new phpmailerException($this->Lang('invalid_address').': '.$address);
  }
  echo $this->Lang('invalid_address').': '.$address;
  return false;
}

And it seems this function is used by the other functions that add an address... So, I suppose there's some kind of email-addresses validation ;-)
That'll answer at least one of your questions ^^


PHPMailer is not the only solution that exists, btw ; there are plenty of others, like, for instance :

Pascal MARTIN belirtildiği gibi bazı insanlar sadece varsayalım gibi, bir e-posta gönderme gibi yalındır ve kolay değildir. Doğrudan soruları cevaplamak için. Evet PHPMailer bazı doğrulama yapmak, ama o süper gelişmiş değil, ama kullanımlar için yeterli olmalıdır. Ve PHPMailer ihtiyacınız olacak ne özel fonksiyonlar bağlı olarak biraz zaman kazandıracak. Ama dikkat etmeniz gereken bazı şeyler:

  • Düz metin vs HTML. E-postalar sadece hiç size gidiyoruz eğer, bu muhtemelen bir anlaşma gibi büyük değildir. Hiç kullanıcı (mesela bir onay e-posta) e-posta gönderirken Ama eğer HTML ve düz metin müşterilerine hem destek edebilmek istiyorum. PHPMailer (ve Zend_Mail) yapmak için bu çok kolay.
  • SMTP. Bu, kendini sadece bir e-posta eğer çok kullanıcılara e-posta gönderme, ama eğer gerçekten önemli olan başka biridir. () E-posta işlevi PHP düzenli posta kullanarak hemen hemen tüm * nix kutusu (özellikle sunucuları) dışarı ile gelen yükler sendmail yoluyla gönderilecektir. Sonuç olarak, spam filtreleri buna karşı çok kolay değildir. Eğer güvenilir bir MX kaydı (veya bir gmail hesabınız varsa) ile düzenli bir SMTP sunucusu kurulumu varsa SMTP kullanarak spam olarak işaretlendikten postanızın şansını azaltmaya yardımcı olacak bu aracılığıyla gönderebilirsiniz.

Sadece PHPMailer Zend_Mail ek olarak (Zend Framework in bu kadar bölümü) kontrol etmek iyi bir tanesidir. Ancak basit bir iletişim formu için biraz fazla olabilir.

Bana herhangi bir kütüphane yüklemeden veya bir ileti sunucusu yapılandırma olmadan google SMTP e-postalar göndermek için izin verir, çünkü PHPMailer benim seçimim olduğunu, bu şekilde ben spam ile ilgili sorunları hakkında endişelenmenize gerek yok.