Önleyin php mail fonksiyonu kullanarak istenmeyen postalar gibi muamele e-postalar gönderdi

14 Cevap php

Ben e-postalar göndermek için bir PHP komut dosyası yazdı.

Benim komut dosyası bu gibi:

$headers =  'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: abc@yahoo.com' . "\r\n";

// Email Variables
$toUser  = "someone@yahoo.com"; // recipient
$subject = "testing"; // subject
$body    = "<html><body><p>
             Example of including an image via html \<img\> tag:
             <br>
             <img src='../images/profile.jpg'>
             <br>
             My new picture
             <br></p></body></html>"; // content

if (mail($toUser,$subject,$body,$headers)) {
    echo "sent";
} else {
    echo "failed";
}

Eh, tabii ki gönderici ve alıcı için geçerli bir e-posta adresini kullanabilirsiniz. Ben e-posta aldım, ama önemsiz posta gider. Yani google araştırma için gitti. Çünkü benim "başlık" komut dosyası sorun? Değilse, o zaman ne benim senaryom önemsiz posta göndermek için neden olabilir? Herhangi bir çözüm?

14 Cevap

Belki de sorun olduğunu olasılıkla posta aslında yahoo sunucularından geliyor değil ki verilen uygulama için başarısız olur yahoo kullanımları domainkeys doğrulama,.

Bir keresinde benzer bir sorun yaşadım ben başlıklarına baktım ve benim ana SpamAssassin'e kullandığı öğrendim. Yani 'SpamAssassin'i puan' için googled ve yanlış (ve dolayısıyla doğru) bir e-posta oluşturmak için nasıl bir bilgi sayıda bulundu.

Örneğin,: SpamAssassin score list

1. Check mail content

Diğerleri de vurguladığımız gibi, posta spam gibi görünüyor çünkü muhtemelen spam olarak işaretleniyor.

Eğer attılar script test gerçek bir ise emin değilim.

Bu gerçek posta gövde ve varsa başlıkları, sonra SpamAssassin'e standart bir montaj ile mesaj çalışan o 4.9 bir spam puan verir

X-Spam-Status: No, score=4.9 required=5.0 tests=BAYES_50,HTML_IMAGE_ONLY_04,
        HTML_MESSAGE,MIME_HTML_ONLY,NO_DNS_FOR_FROM,NO_RELAYS autolearn=no
        version=3.2.5

E-posta vücudun sadece HTML beri çoğu anti-spam çözümleri tarafından şüpheli ile işlenen daha büyük bir şansı var.

2. Mail server's IP

Başka bir yönü değerinde çek, posta sunucusunun IP adresi olacaktır. Dinamik IP adreslerinden kaynaklanan herhangi posta potansiyel SPAM olarak kabul edilecektir.

3. Blocklists

IP adresiniz blok listelerden birinde yer olup olmadığını da kontrol edin. Başlamak için IP adresinizi kontrol ediniz http://www.spamhaus.org/lookup.lasso.

mxtoolbox.com IP kara listeye alınacağını sunucuları ya da kontrol etmek için kullanın. Yanı sıra bu et-posta ile ilgili kontrolleri bir çift ile size yardımcı olabilir.

Tabii ki spam filtreleri içinde çalışan çek uzun bir liste vardır. Zaten önerildiği gibi, spam e-posta spam filtreleri değerlendirmesi hakkında ayrıntılı bilgi için e-posta başlıklarını kontrol edin.

Umarım ki olur!

Schnalle dediği gibi, bir sorun kesinlikle size Kimden olarak belirttiğiniz e-posta ve bir thet göndermek için kullandığınız SMTP sunucusu, .. en, etki alanı sunucu konum üzerinde çalışan aynı whould farklı olmasıdır.

Yani, SMTP ile bağlanıyorsanız (onlar smtp uzaktan bağlantıya izin kontrol, ama onlar yapmak sanırım) e-posta göndermek için yahoo sunucusu kullanabilirsiniz, ve bu 1 sorunu çözecektir.

Başka biri bu daha az önemli olan, alternatif düz metin içeriği olmadan html içeriği olduğunu, ancak.

(I o olay o kullanmak gmail sunucusu üzerinden mail gönderebilirsiniz) size phpMailer, ücretsiz ve açık kaynak php sınıfı kullanmak için tefriş, e-posta göndermek için önermek

  1. Sunucu üzerinde dışarı kaydetmek SPF (Sender Policy Framework, SPF kaydı için Google) sıralamak için deneyin.
  2. Eğer sunucu / etki varolan hesabınızdan e-postalar göndermek emin olun.
  3. Emin cevap-için başlığında ele olduğundan emin olun.

Bunlar deneyebilirsiniz temel şeyler vardır.

Web sitenizin alan mydomain.com ise o başlıklarında From someone@mydomain.com kullandığınızdan emin olun

Ben aynı sorunu vardı:

Parçası, posta spam olarak gelir: Sorun "Kimden" önce içerik türünü belirtmek zaman olduğunu.

Ama "Kimden:" belirtirseniz içerik bölümü önce normal posta olarak gelir ve gülümseme ve meraklandırıyor.

Sorun sizden posta göndererek konum sunucusu bir yahoo sunucusu değil, değildir. kolayca sahte gönderen mümkün - Onlar maç olmadığını en spam filtreleri aksi takdirde (ya da idi ve) olur, kontrol edin. Eğer microsoft.com AT Bill.Gates veya kendi posta adresinden spam olsun neden hiç merak ettiniz mi?

İki çözüm var:

  • abc@yahoo.com posta göndermek için kimlik bilgilerini abc@yahoo.com kullanarak Yahoo'nun SMTP kullanın;
  • kendi alanı ile, diğer kullanın;

Sen burada oluşturduğunuz posta sınıf ve test dosyasını deneyebilirsiniz. Ben dosyaları test ettik ve farklı bir posta adı altında benim hotmail ve gmail e-posta gönderebilirsiniz. Yapı (başlık ve mesaj hem de) doğru yapılmaz, çünkü e-postaları önemsiz olarak işaretleyiniz neden temel sebebi. Çoğu durumda, bu soruna neden olan satır besleme olduğunu.

Gmail'e ekleri ile posta göndermek için kullanabilirsiniz. Ancak, ekleri hotmail için çalışmak istemiyorum. ) Bu = yardımcı olur umarım

Sen dosyaları kontrol edebilirsiniz here ..

Bu deneyin:

$headers ="From:<$from>\n";
$headers.="MIME-Version: 1.0\n";
$headers.="Content-type: text/html; charset=iso 8859-1";

mail($to,$subject,$body,$headers,"-f$from");

Content-type: text/html çıkarın ve $headers .= "X-Priority: 2\nX-MSmail-Priority: high"; Spam kurtulmak için ekleyin. Bu yöntem denenmiş ve test edilmiştir.