2012-07-26 4 views
0

Я пытаюсь отправить новых зарегистрированных пользователей для проверки электронной почты (PHP), но я не понимаю, почему было отправлено электронное письмо на СПАМ, я уже проверил похожие вопросы и все ответы are about Headers,PHP-адрес электронной почты для спама

Мне кажется, что мне сложно узнать эти заголовки и как они проверяются,
На сайте отправителя? скажем, я отправил как [email protected], а фактический домен домена domain.com, как бы он знал? и является ли это одной из основных причин, почему это относится к спаму?
Я использую VPS, это имеет какое-либо отношение к этому?
Я просто пытаюсь понять, четкие/простые причины, почему бы письмо проверяется как спам

и что, если я послал с IP сервера, а не сам

+0

Вы должны ознакомиться с методами защиты от спама, чтобы понять, что вам нужно делать.В основном SPF, во-вторых, какие заголовки использовать, наконец-то правильное содержание (текстовые альтернативные версии при отправке писем HTML) – ontrack

+0

Первый - заголовки, второй - контент, третий - качество. Письмо, состоящее только из одной строки слов, может быть потенциальным спамом. Электронная почта, состоящая только из 3 слов + ссылка, больше спама, чем действительная электронная почта. Проверки Anti-Spam ищут такие правила. Ваша электронная почта длиннее одной строки? – jolt

+0

Возможный дубликат http://stackoverflow.com/questions/2032286/why-are-all-mails-sent-via-phps-mail-go-to-spam-box-but-not-mails-sent-direct и http://stackoverflow.com/questions/4309690/phpmail-always-go-to-spam –

ответ

0

1 домен) Проверьте заголовки. Вы можете использовать любую библиотеку отправки электронной почты, такую ​​как PHPMailer (http://code.google.com/a/apache-extras.org/p/phpmailer/wiki/PHPMailer#Documentation_and_Resources)

2) Проверьте сервер хостинга. Если вы используете общий хостинг, то, скорее всего, он был внесен в черный список в домене электронной почты.

1

Большинство почтовых серверов будут делать Reverse DNS lookup, чтобы люди из домена domain.com не делали вид из otherdomain.com. Он будет проверять, разрешает ли IP-адрес, с которого было отправлено письмо, с тем же доменным именем отправителя электронной почты. Yahoo и другие крупные компании также будут использовать DKIM для подтверждения.

Часто ваше сообщение может закончиться массовым/спамом, если оно не содержит большого количества контента или вы отправили много одного и того же контента на один сервер.

Вот хорошая статья о what web developers should know about sending email, которая может помочь вам разобраться в этом вопросе.

0

Настройка адрес электронной почты, на домене, замените [email protected] с вновь созданный адрес электронной почты, на ваш домен и [email protected] с вашим идентификатором Hotmail/Gmail в следующем сценарии.

Также замените Your Name с вашим именем в следующем сценарии и протестировать его на сервере:

<?php 

    $myName = "Your Name"; 
    $myEmailAddressonDomain = "[email protected]"; 
    $myPreferredEmailAddresson = "[email protected]"; 
    $mail = $_POST['email_field']; 
    $clientName = $_POST['name_field']; 
    $subject = $_POST['subject_field']; 
    $text = $_POST['message_field']; 

    $headers = 'From: "$name" <$yourEmailAddressonDomain>'.PHP_EOL.'Reply-To: '.$_POST['mail'].PHP_EOL; 
    $to = '"$yourname" <$myPreferredEmailAddresson>'; 
    $message = $text.PHP_EOL.PHP_EOL."---".PHP_EOL."From: ".$name." <".$mail.">"; 

    /* Server-side form validations */ 
    $err = "Error with "; 


    if (!checkLen($name)) { 
     $err.='Name'; 
    } else if (!checkLen($mail) && !checkEmail($mail)) { 
     $err.='Email'; 
    } else if (!checkLen($subject)) { 
     $err.='Subject'; 
    } else if (!checkLen($text)) { 
     $err.='Message'; 
    } 

    if (strlen($err)>11) { 
     echo $err.' field'; 
     exit; 
    } 
    /* end validations */ 

    elseif (mail($to, $subject,$message, $headers)) { 
     echo "<span style='color: #336600'>Your message has been sent.</span>"; 
    } else { 
     echo "An error occurred, please try again."; 
    } 

    function checkLen($str,$len=1) 
    { 
     return isset($str) && mb_strlen(strip_tags($str),"utf-8") > $len; 
    } 

    function checkEmail($str) 
    { 
     return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); 
    } 


?> 

электронной приземлится на ваш почтовый ящик Hotmail/Gmail (или не спам) папку с помощью для вашего домена адрес электронной почты.

Примечание:Щелчок Ответить в полученной электронной почте покажет вам адрес электронной почты клиента (как мы установили в Reply-To заголовке выше)

сделать соответствующие изменения, и вы хорошо идти.

0

Как вы работаете VPS, вы можете подумать о настройке DKIM и SPF на вашем сервере, они используются почтовыми службами, такими как Gmail, для классификации вашего сервера как законного сервера.

Смежные вопросы