Ne SMTP sunucusu PHP mail () varsayılan olarak kullanır ve daha iyi seçenekler vardır?

8 Cevap php

Ben GoDaddy ile benim sitesini barındırması, ve benim siteden formu postalar göndermek için şu anda PHP mail() işlevini kullanabilirsiniz. GoDaddy form mail şeyler için günde 1000 SMTP röle sınırı vardır, ama onlar benim PHP komut dosyası ile bunu dokunmadan gerektiğini yemin ederim.

  1. mail() SMTP bilgi almaz beri, sadece otomatik GoDaddy (veya barındırma ne olursa olsun üzerinde olabilir) kullanıyor?

  2. Sitem bir gün (ayrı örnekleri değil, bir döngü içinde) gönderilen 1000'den fazla e-posta bekliyor olacak ise, ben farklı bir yöntem kullanarak, veya mail() doğru seçim olmalıdır?

8 Cevap

Php varsayılan, yerel posta sunucusu tarafından kullanır. Ancak size php.ini dosyasına bu belirtebilirsiniz.

Bundan daha fazla e-posta göndermek için bekliyorsanız, alternatif barındırma gelen mail için farklı bir sunucu bulma içine bakmak istiyorum, ya da olabilir

* Nix makinede, PHP mail() function SMTP desteği, ancak bunun yerine sendmail () veya sunucu üzerindeki diğer yapılandırılmış posta komut dosyası kullanır. Bu komut bir SMTP yoluyla gönderebilirsiniz, ancak bu kolay PHP içinde yolu (zaten komut yoksa) değildir. SMTP kullanmak için, ben tavsiye ederim PHPMailer. Ben şimdi birkaç yıl için kullanıyorum ve etkilendim. Birçok diğer protokol ile birlikte SMTP destekler ve aynı zamanda bir HTML e-posta için bir metin, sadece vücut ekleyerek ve uygun e-posta başlıklarını oluşturma gibi diğer yararlı işlevleri vardır. Eğer bir e-posta göndermek istediğinizde bu her zaman ayarlamak zorunda kalmamak için de böyle SMTP sunucusu olarak ve e-posta / adından varsayılan ayarlamak için sınıfını genişletebilirsiniz. O da çok güzel hata raporlama ve hata ayıklama yapar.

Ben de e-postaların 1000'ler göndermek için bu sınıf öneriyoruz. Geçenlerde onunla bir günde> 5000 yaptım ve hiçbir problem yaşamadım.

Eğer kimlik doğrulaması gerektiren harici e-posta sunucusu kullanmanız gerekiyorsa, sen PHP mail () fonksiyonunu kullanmak mümkün olmayacaktır.

Ben kullanarak tavsiye: http://pear.php.net/package/Mail

Bir üçüncü taraf posta servisini kullanmak gerekiyorsa ben mail() kullanımını bırakarak tavsiye ve SwiftMailer kütüphane ile değiştirin ediyorum. Bu bir kaç yerde kullandım bir özellik zengin bir bileşen (kimlik doğrulama, ekler, şifreleme vb destekler) bulunuyor. Ayrıca, ücretsiz ve açık kaynak bulunuyor.

php.ini tanımlandığı gibi mail () ayarını kullanın gelmez. * Nix sunucuları (varsa) sunucuda yüklü ne olursa olsun mta kullanır iken, Windows sunucuları gerçek bir SMTP sunucusu gerektirir.

Diğerleri de söylediğim gibi alternatif bir smtp sunucusu kullanmak istiyorsanız eğer, SwiftMailer gibi alternatif bir kütüphane kullanımı. Ayrıca SMTP sunucusu hızlı olduğundan emin olmak isterdim. Gmail gibi bir SMTP sunucusu kullanmadan zaman yavaşlamalar gördük.

GoDaddy GoDaddy ile barındırılan adanmış sunucular için bile, bir Akıllı SMTP Relay kullanır. Sınırı Akıllı röle geçiyor kaç e-posta dayanmaktadır.

Eğer fazla e-posta göndermek için ihtiyacı için geçerli bir nedeni var ve sitenizin spam olmadığını doğrulamak ve onlara bir tahmin vermek durumunda tüm e-postaları opt-in olan, destek sizin için sınırı artacak eğer kaç Eğer dışarı göndermek gerekir e-postalar.

Bu ben cevap güncellenen eğer yararlı olacağını düşündüm eski bir yazı olduğu için -

Bu PHP 4, PEAR Posta paketi genellikle zaten yüklü :-) eskiden daha şimdi yapmak çok basittir ve bu gerçekten basit öğretici size php dosyasına {eklemeniz gereken kod birkaç satır gösterir [(0)]}

Çoğu hosting şirketleri gerekir SMTP ayarlarını listeler. Ben JustHost kullanmak ve https://my.justhost.com/cgi/help/26 (under Outgoing Mail Server) de onlarınkini listesi

(Php) işlevi sadece önemsiz için posta göndereceğiz posta kullanın Dont. Bunun yerine SMTP php mailler işlevini kullanın.

Why we should use SMTP instead PHP mail():

SMTP bir mailserverların üzerinde gerçek bir hesaba giriş ve başka bir posta sunucusuna SMTP üzerinden mail göndermek. Posta sunucusu doğru yapılandırılmış ise, e-postalarınızı bir mesaj sunucusu üzerinde gerçek bir hesaptan gönderilen ve spam olarak işaretlendi kadar rüzgar olmayacak.

Mail () işlevi çoğu durumda sendmail ile gönderilen mail ile gönderdi. Orada oluyor hiçbir kimlik olduğunu ve "Kimden:" kullanırsanız hemen her zaman spam olarak işaretlenir edilecek ekstra başlıklarında.

This is because if you take a look at an original email file in say, gmail, you will see the headers that are sent. You are actually sending from user@serverhostname.tld and not someone@example.com like you had told the mail function to do. If you use SMTP and view the original the email is actually sent from someone@example.com

Sen SMTP sınıf indirebilirsiniz:

  1. https://code.google.com/a/apache-extras.org/p/phpmailer/source/browse/trunk/class.smtp.php?r=170
  2. http://www.phpclasses.org/package/14-PHP-Sends-e-mail-messages-via-SMTP-protocol.html

Ben yaklaşık yedi yıldır açık kaynak projesi phpmailer kullanarak oldum - bu müthiş! Bir dışına SMTP sunucusuna bağlanmak için kullanabilirsiniz.