php
  • header
  • email
  • email-spam
  • 2009-04-14 11 views 13 likes 
    13

    Napisałem skrypt PHP do wysyłania wiadomości e-mail.Zapobieganie wysyłaniu wiadomości e-mail traktowanych jako wiadomości-śmieci za pomocą funkcji poczty php.

    Mój skrypt jest tak:

    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= 'From: [email protected]' . "\r\n"; 
    
    // Email Variables 
    $toUser = "[email protected]"; // 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"; 
    } 
    

    Oczywiście, używam poprawny adres e-mail nadawcy i odbiorcy. Otrzymałem wiadomość e-mail, ale trafia ona do wiadomości-śmieci. Więc poszedłem do badań Google. Czy to z powodu mojego problemu z nagłówkiem "header"? Jeśli nie, to co może spowodować, że mój skrypt wyśle ​​śmieci? Jakieś rozwiązanie?

    Odpowiedz

    8

    Być może problem polega na tym, że Yahoo używa weryfikacji domainkeys, co prawdopodobnie nie powiedzie się, ponieważ twoja aplikacja nie pochodzi z serwerów yahoo.

    7

    Kiedy miałem podobny problem, spojrzałem na nagłówki i okazało się, że mój host używa SpamAssassin. Dlatego szukałem "SpamAssassin score" i znalazłem mnóstwo informacji o tym, jak nieprawidłowo (a tym samym poprawnie) utworzyć e-mail.

    Na przykład: SpamAssassin score list

    0

    problemem jest to, że serwer jesteś wysyłania poczty z serwera nie jest Yahoo. większość filtrów antyspamowych sprawdza, czy pasują do siebie, w przeciwnym razie (i jest - lub było) możliwe łatwe fałszowanie nadawcy. zastanawiałeś się kiedyś, dlaczego dostałeś spam od bill.gates AT microsoft.com lub Twój własny adres e-mail?

    1

    Jak powiedział schnalle, jednym z problemów jest na pewno to, że serwer SMTP, którego używasz do wysyłania wiadomości e-mail i tej, którą określasz jako Od, jest inny. Domena domeny z domeny powinna być taka sama, jak serwer, na którym działasz.

    Możesz więc użyć serwera yahoo, aby wysłać wiadomość e-mail (sprawdź, czy zezwala na połączenie zdalne smtp, ale chyba tak) łącząc się przez smtp, a to rozwiąże 1 problem.

    Innym jest zawartość html bez alternatywnej zawartości zwykłego tekstu, ale ta jest mniej ważna.

    Proponuję Ci phpMailer, darmowy i open-source klasy PHP do wysyłania e-maili, w łatwy w użyciu (i używać go wydarzenie o wysyłanie poczty przez serwer gmail)

    0

    Masz dwa rozwiązania:

    +2

    testowane w obie strony .. nie powiodło się – Peter

    5

    1. Sprawdź zawartość poczty

    Jak inni zasugerował, że prawdopodobnie jest oznaczona jako spam, ponieważ poczta wygląda jak spam.

    Nie jestem pewien, czy skrypt, który opublikowałeś, jest tym, który testujesz.

    Jeśli ma rzeczywiste nagłówki wiadomości pocztowych &, to uruchomienie tej wiadomości przez standardową instalację SpamAssassin daje jej wynik spamu równy 4.9

     
    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 
    

    Ponieważ organizm HTML e-mail nie tylko on ma większą szansę być traktowane z podejrzanego przez większość rozwiązań antyspamowych. IP

    Innym aspektem warto sprawdzić

    2. Serwer poczty będzie adres IP serwera poczty. Każda wiadomość e-mail pochodząca z dynamicznych adresów IP będzie potencjalnie uznawana za spam.

    3. blocklisty

    Należy również sprawdzić, czy adres IP jest wymienione w jednym z wykazów blokowych. Na początek sprawdź swój adres IP pod numerem http://www.spamhaus.org/lookup.lasso.

    1
    1. Na serwerze spróbuj posortować dokument SPF (Sender Policy Framework, Google for SPF).
    2. Upewnij się, że wysyłasz wiadomości e-mail z istniejącego konta na serwerze/domenie.
    3. Upewnij się, że masz adres zwrotny w nagłówku.

    Oto podstawowe rzeczy, które możesz wypróbować.

    2

    jeśli domena internetowa jest mydomain.com następnie Od nagłówki upewnij się, aby skorzystać [email protected]

    0

    Można spróbować klasę mail oraz testowy plik, który stworzyłem tutaj. Przetestowałem pliki i mogę wysyłać e-maile do mojego hotmaila i Gmaila pod inną nazwą. Głównym powodem, dla którego wiadomości e-mail są oznaczone jako śmieci, jest fakt, że struktura (zarówno nagłówek, jak i wiadomość) nie została poprawnie wykonana. W większości przypadków przyczyną problemu jest podanie w wierszu.

    Mogę go używać do wysyłania wiadomości e-mail z załącznikami do Gmaila. Jednak załączniki nie działają na hotmail. Nadzieję, że to pomaga =)

    Można sprawdzić pliki here ..

    11

    Spróbuj tego:

    $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"); 
    
    +1

    Jesteś gwiazdą @Anju – Coder

    2

    miałem ten sam problem:

    Problemem jest to, że po określeniu typ zawartości przed częścią "Od:", wiadomość przychodzi jako spam.

    Ale jeśli określisz "Od:" przed częścią z treścią, otrzymasz zwykłą pocztę i będziesz się uśmiechać i ciekawić.

    1

    Usuń Content-type: text/html i dodaj $headers .= "X-Priority: 2\nX-MSmail-Priority: high";, aby pozbyć się spamu. Ta metoda została wypróbowana i przetestowana.

    3

    Użyj mxtoolbox.com, aby sprawdzić adres IP serwera, który ma być na czarnej liście. Witryna ta może również pomóc w kilku kontrolach związanych z pocztą e-mail.

    Oczywiście istnieje długa lista kontroli przeprowadzanych wewnątrz filtrów antyspamowych. Jak już zasugerowano, sprawdź nagłówki wiadomości e-mail, aby uzyskać szczegółowe informacje na temat oceny spamu w e-mailach spamowych.

    Nadzieję, że pomaga!

    2
        **This Works Perfectly fine for me**  
             $to="[email protected]"; 
             $subject="This is Your Message"; 
             $from = 'Sender <[email protected]>'; 
             $body='Hi '.$name.', <br/><br>Now You can See Yor main in inbox'; 
             $headers = "From: " .($from) . "\r\n"; 
             $headers .= "Reply-To: ".($from) . "\r\n"; 
             $headers .= "Return-Path: ".($from) . "\r\n";; 
             $headers .= "MIME-Version: 1.0\r\n"; 
             $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
             $headers .= "X-Priority: 3\r\n"; 
             $headers .= "X-Mailer: PHP". phpversion() ."\r\n"; 
             mail($to,$subject,$body,$headers); 
    
    Powiązane problemy