PHP почта заканчивается как нежелательная почта - PullRequest
2 голосов
/ 12 января 2012

Я искал по всей сети и перепробовал много разных решений, в том числе с phpmailer и другими библиотеками.

Моя цель - отправить письмо-подтверждение с моего сайта, оно работает с hotmail и другими службами, но сgmail заканчивается как мусор.

Использование функции mail(), страница размещена на one.com и отправка почты существует.

Код:

$mime_boundary = 'Multipart_Boundary_x'.md5(time()).'x';

$headers = "";

$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"{$mime_boundary}\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";

$body    = "This is a multi-part message in mime format.\n\n";

# Add in plain text version
$body   .= "--{$mime_boundary}\n";
$body   .= "Content-Type: text/plain; charset=\"charset=us-ascii\"\n";
$body   .= "Content-Transfer-Encoding: 7bit\n\n";
$body   .= "To view the message, please use an HTML compatible email viewer!";
$body   .= "\n\n";

# Add in HTML version
$body   .= "--{$mime_boundary}\n";
$body   .= "Content-Type: text/html; charset=\"UTF-8\"\n";
$body   .= "Content-Transfer-Encoding: 7bit\n\n";
$body   .= $this->_message;
$body   .= "\n\n";

$body   .= "--{$mime_boundary}--\n"; #

$headers .= 'From: Sender <sender@example.com>'."\r\n";
$headers .= 'Reply-To: Sender <sender@example.com>'."\r\n";
$headers .= 'Return-Path: Sender <sender@example.com>'."\r\n";

$headers .= 'Message-Id: <' . md5(uniqid(microtime())) . '@example.com>'."\r\n";
$headers .= "X-Sender-IP: ". $_SERVER['SERVER_ADDR'] ."\r\n";
$headers .= 'X-Mailer: PHP/'. phpversion() ."\r\n";

mail($this->_to, '=?UTF-8?B?'. base64_encode("Subject - ". $this->_subject) .'?=', $body, $headers, "-f sender@example.com");

Ответы [ 4 ]

2 голосов
/ 12 января 2012

это просто, проверьте, есть ли домен one.com в черном списке:

http://www.mxtoolbox.com/SuperTool.aspx?action=blacklist%3a195.47.247.192

1 голос
/ 12 января 2012

Убедитесь, что ваш IP (или IP вашего сервера) не занесен в черный список: http://www.dnsbl.info/dnsbl-database-check.php

0 голосов
/ 12 января 2012

Этот отличный пост от @JeffAtwood дает огромное количество информации о предостережениях, с которыми можно столкнуться при отправке электронной почты, и о том, что необходимо сделать, чтобы уменьшить вероятность окончания в папка нежелательной почты / спама.

0 голосов
/ 12 января 2012

Насколько я помню, в последнем параметре должен быть пробел.

"-fsender@example.com"

вместо

"-f sender@example.com"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...