Как предотвратить отправку почты через PHP mail () в спам?

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

5 ответов


вы должны добавить заголовки игла:

пример кода :

$headers = "From: myplace@example.com\r\n";
$headers .= "Reply-To: myplace2@example.com\r\n";
$headers .= "Return-Path: myplace@example.com\r\n";
$headers .= "CC: sombodyelse@example.com\r\n";
$headers .= "BCC: hidden@example.com\r\n";

if ( mail($to,$subject,$message,$headers) ) {
   echo "The email has been sent!";
   } else {
   echo "The email has failed!";
   }
?> 

нет меткий трюк. Необходимо исследовать причины, по которым ваши письма классифицируются как спам. SpamAssassin hase страница с описанием некоторые советы для законных отправителей, чтобы избежать ложных срабатываний. См. также кодирование ужас: так что вы хотели бы отправить по электронной почте (через код)


попробовать библиотека PHP Mailer.
Или отправить почту через SMTP-фильтр перед отправкой.
Также попробуйте дать все детали, как FROM, return-path.


<?php

$subject = "this is a subject";
$message = "testing a message";




  $headers .= "Reply-To: The Sender <sender@domain.com>\r\n"; 
  $headers .= "Return-Path: The Sender <sender@domain.com>\r\n"; 
  $headers .= "From: The Sender <sender@domain.com>\r\n";  
  $headers .= "Organization: Sender Organization\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
  $headers .= "X-Priority: 3\r\n";
  $headers .= "X-Mailer: PHP". phpversion() ."\r\n" ;



mail("reciever@domain.com", $subject, $message, $headers); 


?> 

$fromMail = 'set your from mail';
$boundary = str_replace(" ", "", date('l jS \of F Y h i s A'));
$subjectMail = "New design submitted by " . $userDisplayName;


$contentHtml = '<div>Dear Admin<br /><br />The following design is submitted by '. $userName .'.<br /><br /><a href="'.$sdLink.'"><b>Click here</b></a> to check the design.</div>';
$contentHtml .= '<div><a href="'.$imageUrl.'"><img src="'.$imageUrl.'" width="250" height="95" border="0" alt="my picture"></a></div>';
$contentHtml .= '<div>Name : '.$name.'<br />Description : '. $description .'</div>';

$headersMail = '';
$headersMail .= 'From: ' . $fromMail . "\r\n" . 'Reply-To: ' . $fromMail . "\r\n";
$headersMail .= 'Return-Path: ' . $fromMail . "\r\n";
$headersMail .= 'MIME-Version: 1.0' . "\r\n";
$headersMail .= "Content-Type: multipart/alternative; boundary = \"" . $boundary . "\"\r\n\r\n";
$headersMail .= '--' . $boundary . "\r\n";
$headersMail .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$headersMail .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n";
$headersMail .= rtrim(chunk_split(base64_encode($contentHtml)));

try {
    if (mail($toMail, $subjectMail, "", $headersMail)) {
        $status = 'success';
        $msg = 'Mail sent successfully.';
    } else {
        $status = 'failed';
        $msg = 'Unable to send mail.';
    }
} catch(Exception $e) {
    $msg = $e->getMessage();
}

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

если вы тестируете его с localhost, установите ниже Перед проверкой:

Как установить отправку почты из localhost xampp:

  1. комментировать все D:/xampp/sendmail/sendmail.ini и упомянуть ниже

    [sendmail]

    smtp_server=smtp.gmail.com smtp_port=587 error_logfile=ошибка.бревно debug_logfile=отладка.бревно auth_username=yourmailid@domain.com auth_password=ваш-mail-Пароль force_sender=yourmailid@domain.com

  2. на D:/xampp/php/php.ini а. Под

    [функция mail]

    SMTP = smtp.gmail.com smtp_port = 587

b. set sendmail_from = yourmailid@domain.com С. раскомментируйте sendmail_path = "\"D:\xamp\sendmail\sendmail.exe\ " - t" Следовательно, он должен выглядеть ниже

sendmail_path = "\"D:\xamp\sendmail\sendmail.exe\" -t"

д'. комментарий sendmail_path="D:\xamp\mailtodisk\mailtodisk.исполняемый" Следовательно, он должен выглядеть ниже

;sendmail_path="D:\xamp\mailtodisk\mailtodisk.exe"

e. mail.add_x_header=Off