SMTP aracılığıyla göndermek için PHP mail kullanın

6 Cevap php

Sadece yerel sendmail yerine bir SMTP sunucusu kullanmak olacak böylece PHP'nin mail () komutu yapılandırabilirsiniz olmadığını herkes biliyor mu? Biz e-postaları spam olarak işaretlenmiş olması ile sorun yaşıyorsanız.

Bizim sunucu Redhat 5 Atılgan'ı çalışıyor.

Ben bir SMTP istemcisi olarak hareket çeşitli PHP kütüphaneleri farkında değilim ama mail () doğrudan bir SMTP sunucusu kullanılan yüzden oldukça PHP yapılandırmak istiyorum.

6 Cevap

php mail () php.ini ayarını kullanır. Mail () SMTP kimlik doğrulaması izin vermez gibi komut bulunduğu yerden çalıştırılması gerekir. Otherways spam geçişi için kullanılan olabilir.

A düşük seviyeli php script, herhangi çekirdek olmayan kütüphaneleri kullanılarak değil, zor değil. Bir (gmail ya da yahoo gibi) yetkilendirilmesi ile bir smpt sunucu ihtiyacı. Diğer smtp kimlik doğrulaması, ilk pop hesabınıza giriş artık çok popüler değil.

Komut satırından ve bir tarayıcı çalıştırabilirsiniz genel bir düşük seviyeli smtp posta komut dosyası için here bakın.

Göre this manual page, sadece Windows üzerinde mümkündür.

Bu bağlantıları kontrol edin:

Örnek:

Daha sonra bunu kullanabilirsiniz, ancak her postada SMTP soket denir () fonksiyonu açılır ve kapanır: güncelleyin.

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Hayır, nedeni tüm Linux / Unix sistemleri "sendmail" aracı olması gerektiğidir. Yararı mail gerçekten gönderilmiş olan daha olası hale gelir bu yüzden harici araç aşımı veya tepkisiz SMTP sunucuları işleyebilir var. Windows için SMTP istemcisi uygulaması bir iş çevresinde "sendmail" Orada yok gerçeği içindir.

Benim yaklaşım sadece SMTP kullanarak başka bir sunucuya görüşmeler bir sendmail uyumlu aracını kullanmak olacaktır. Bunun için basit bir araçtır SSMTP olan (kaynaklar Avialable here)

Sadece bir röle olarak yukarı posta sunucusu kullanmak için yerel sendmail! Bu şekilde, PHP tarafında anything değiştirmek zorunda değilsiniz.

Eğer hata işleme bu şekilde kuyruk her şeyi kaybeder çünkü, SMTP PHP ile doğrudan posta göndermek iyi bir fikir olmaz!

Sen PEAR Mail paketini kullanarak doğrudan SMTP yoluyla gönderebilirsiniz. Ayrıca SMTP posta çalışması için Net_SMTP yüklü gerekir. Birçok sunucularında, bu varsayılan olarak yüklenir. Ayrıca bu yerel kütüphanelerin bir kopyasını indirmek ve sitenizin dizine yükleyin veya yolu içerebilir. Bu ideal bir çözüm değil, ancak işlevsel.

Eski mail() fonksiyonu için bir drop-in yerine arıyor ama eğer yerine PHP varsayılan SMTP yoluyla gönderir, sen sağ, tüm parametreleri ayarlar bir çevirmen işlevi yazmak gerekir Sipariş ve böyle. Böyle bir script Burada bir örnek var - Açıkçası sizin istediğiniz ayarları maç değiştirmeniz gerekecek: http://tltech.com/info/php-mail-via-smtp/