Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Пример кода:   

$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "Return-Path: [email protected]\r\n";
$headers .= "CC: [email protected]\r\n";
$headers .= "BCC: [email protected]\r\n";

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

Ответ 2

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

Ответ 3

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

Ответ 4

<?php

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




  $headers .= "Reply-To: The Sender <[email protected]>\r\n"; 
  $headers .= "Return-Path: The Sender <[email protected]>\r\n"; 
  $headers .= "From: The Sender <[email protected]>\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("[email protected]", $subject, $message, $headers); 


?> 

Ответ 5

$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 xampp:

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

    [Sendmail]

    smtp_server = smtp.gmail.com smtp_port = 587 error_logfile = error.log debug_logfile = debug.log [email protected] auth_password = ваш-почта-пароль [email protected]

  • В D:/xampp/php/php.ini а. В разделе

    [функция почты]

    SMTP = smtp.gmail.com  smtp_port = 587

б. set sendmail_from = [email protected] с. uncomment sendmail_path = "\" D:\xamp\sendmail\sendmail.exe\ "-t" Следовательно, это должно выглядеть ниже

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

д. comment sendmail_path = "D:\xamp\mailtodisk\mailtodisk.exe" Следовательно, это должно выглядеть ниже

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

е. mail.add_x_header=Off

Ответ 6

Я думаю, что лучший способ - создать учетную запись почтовой программы в cpanel домена, который вы используете. Пример, если ваш сайт xyz.com, создайте почтовую электронную почту, например [email protected]. Затем используйте этот адрес в поле $to и попробуйте.

Google также передает это сообщение, и вы получите свою почту в первичном почтовом ящике не в спаме.

Ответ 7

<?php 
$to1 = '[email protected]';
$subject = 'Tester subject'; 

    // To send HTML mail, the Content-type header must be set

    $headers .= "Reply-To: The Sender <[email protected]>\r\n"; 
    $headers .= "Return-Path: The Sender <[email protected]>\r\n"; 
    $headers .= "From: [email protected]" ."\r\n" .
    $headers .= "Organization: Sender Organization\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "X-Priority: 3\r\n";
    $headers .= "X-Mailer: PHP". phpversion() ."\r\n" ;
?>