2009-09-03 4 views
0

ОК, поэтому я собрал очень основную функцию почты, и, проверяя это, я использовал пару учетных записей электронной почты, одну учетную запись google и другую учетную запись. Я получаю все электронные письма в учетной записи google, но не тем, кто указывает на мою работу. Я думаю, это может быть потому, что они были догнаны программным обеспечением для защиты от спама. Любые идеи о том, как я могу разработать почтовую функцию, чтобы не попасть в спам-программное обеспечение?php mail не получает почту

Вот копия моей почтовой функции

$to  = '[email protected]'; 
$subject = 'The subject'; 
$message = 'Hello,'."\n"; 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers = 'From: [email protected]' . "\r\n" . 
'CC: [email protected]' . "\r\n"; 

$mail_sent = mail($to, $subject, $message, $headers); 
if($mail_sent) { 
    header("location:newlocation.php"); 
} 
} 
+0

Вы проверили почтовый заголовок на почте, которую вы получили в своей учетной записи gmail? Может быть, эта информация может привести вас в правильном направлении. – goddva

ответ

1

Спам-фильтры используют много различных методов, чтобы определить, если почта приходит в фактически спам или нет.

Вот несколько вещей, которые я хотел бы предложить:

  • Описательных сюжетной линию
  • описательного сообщения, поосторожнее с HTML и другими богатыми содержанием внутри тела, как иногда спам-фильтры подберут на ней как "Реклама".
  • Полные полные заголовки с реалистичной информацией там, где это возможно.

Попробуйте поэкспериментировать с различными комбинациями и посмотрите, сможете ли вы получить его до своей работы. Хорошо, что ваша учетная запись google получила электронную почту, поэтому вы знаете ее локальную проблему на стороне сервера.

2

Много раз это связано не только с функцией почты PHP(), но и с гораздо более сложной конфигурацией вашего агента передачи почты. Многие почтовые серверы будут отказываться от сообщений, которые они предполагают, от спамеров (т. Е. Неконфигурированных/неправильно сконфигурированных отправителей), прежде чем они даже попадут в фильтр спама.

Если проверить журналы вашего МТА вы, вероятно, найти несколько рикошетов любит, «Почта с этого сервера не допускается, см черный список информации на [вставить URL].

0

определение спама полностью определяется программное обеспечение, использующее эвристику спама. Вам нужно будет изучить программное обеспечение для защиты от нежелательной почты, которое использует ваша компания, и понять, почему он попадает в спам. Чаще всего это связано с настройкой вашего почтового сервера. много использования программного обеспечения - это действительная обратная запись DNS, поэтому вы могли бы изучить это.

Вы должны понимать, что если бы было простое средство защиты от спама, которое ловило вашу электронную почту как спам, просто b y изменяя несколько заголовков, тогда программное обеспечение для защиты от нежелательной почты было бы совершенно бесполезным, поскольку спамеры также знали бы эти методы.

0

Добавление верного заголовка «от» было бы первым делом, я думаю.

1

Вам, вероятно, необходимо правильно отформатировать заголовки и содержимое. границы отсутствуют.

Вот одна простая функция с форматированием почты HTML:

<?php 
function html_mail($i){ 
    $to = $i['to']; 
    $to_name = $i['to-name']; 
    $subject = $i['subject']; 
    $html_message = $i['message']; 
    $from = $i['from']; 
    $from_name = $i['from-name']; 
    $reply_to = $i['reply-to']; 
    $reply_to_name = $i['reply-to-name']; 

    if(!$to || !validate::email($to)){return false;} 

    $email_message = ''; 
    $email_subject = $subject;$email_txt = $html_message; 
    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
    $email_to = ($to_name ? $to_name.'<'.$to.'>':$to); 

    $headers = "From: ".($from_name!='' ? $from_name.'<'.$from.'>':$from)."\n"; 
    if($reply_to){ 
    $headers .= "Reply-To: ".($reply_to_name ? $reply_to_name.'<'.$reply_to.'>':$reply_to)."\n"; 
    } 
    $headers .= "MIME-Version: 1.0\n" . 
       "Content-Type: multipart/mixed;" . 
       " boundary=\"{$mime_boundary}\""; 
    $email_message .= "This is a multi-part message in MIME format.\n\n"; 

    $email_message .= "--{$mime_boundary}\n"; 
    $email_message .= "Content-Type: text/html; charset=utf-8\n"; 
    $email_message .= "Content-Transfer-Encoding: 8bit\n\n"; 
    $email_message .= $email_txt; 
    $email_message .= "\n\n"; 

    $email_message .= "--{$mime_boundary}\n"; 
    $email_message .= "Content-Type: text/plain; charset=utf-8\n"; 
    $email_message .= "Content-Transfer-Encoding: 8bit\n\n"; 
    $email_message .= trim(strip_tags(str_replace(array('<br/>','<br />','<br/>'),"\r\n",$email_txt))); 
    $email_message .= "\n\n"; 

    $email_message .= "--{$mime_boundary}--"; 
    $ok = @mail($email_to, $email_subject, $email_message, $headers); 

    return $ok; 
} 
?> 

когда вы правильно отформатированный почту, вы, вероятно, будет иметь возможность пройти по фильтров.

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