Я использую функцию mail () PHP для отправки электронной почты (выполняется процесс sendmail). Но все письма будут спамить (в случае gmail). Я пробовал много трюков, которые я нашел в сети, но никто не работает, пожалуйста, расскажите мне о любом уверенном трюке.
Вы должны добавить игольные заголовки:
Образец кода :
$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 просматривает страницу, описывающую некоторые советы для законных отправителей, чтобы избежать ложных положительных результатов . См. Также « Ужас кодирования»: вы хотите отправить электронную почту (через код)
Попробуйте библиотеку PHP Mailer .
Или отправьте почту через SMTP-фильтр перед отправкой.
Также попробуйте указать все данные, такие как FROM
, return-path
.
$fromMail = 'set your from mail'; $boundary = str_replace(" ", "", date('l jS \of FY his 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
и упомянуть ниже
[Отправить письмо]
smtp_server = smtp.gmail.com smtp_port = 587 error_logfile = error.log debug_logfile = debug.log auth_username=yourmailid@domain.com auth_password = ваш-mail-пароль force_sender=yourmailid@domain.com
В D:/xampp/php/php.ini
a. Под
[почтовая доставка]
SMTP = smtp.gmail.com smtp_port = 587
б. set sendmail_from = yourmailid@domain.com
c. 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
Я думаю, что лучший способ – создать учетную запись электронной почты в cpanel домена, который вы используете. Например, если ваш сайт – xyz.com , создайте почтовую электронную почту, например mailer@xyz.com . Затем используйте этот адрес в поле $ to и попробуйте.
Google также передает это сообщение, и вы получите свою почту в первичном почтовом ящике не в спаме.
<?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); ?>