Intereting Posts
php require_once возврат в текущий рабочий каталог Как получить IP-адрес клиента в PHP? Общие сеансы PHP в домене PHP-массив для таблицы HTML Получение записи базы данных, установленной в массив в php Специальные переменные IPN Paypal Ошибка PHP Parse – неожиданный T_STRING Symfony 2 kpn мгновенный генерировать pdf с выходом соответствует зоне безопасности Инструмент или код PHP для преобразования IP-адреса в координаты lat / lng Код парсера с открытым исходным кодом для разметки Mediawiki Как изменить сингулярное / множественное число на «комментарий» на «комментарии» к числу комментариев Facebook? CakePHP: вызов функции-члена setFlash () для объекта без объекта Покрытие Phpunit: в чем разница между параметрами addUncoveredFilesFromWhitelist и «processUncoveredFilesFromWhitelist»? php – Как отслеживать страницы, посещаемые пользователями после выхода из моего сайта? PHPExcel – сохранение формата форматированного текста при импорте

Мои письма отправляются как спам, я использую php mail ()

У меня есть веб-сайт, который отправляет одно письмо для тех, кто регистрируется, а не спам. И дело в том, что я использую функцию mail () в PHP, но многие люди получают ее как спам.

$title = "title"; $body = "message"; $header = "MIME-Version: 1.0" . "\r\n"; $header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $header .= "To: ".$_POST["name"]." <".$_POST["email"].">" . "\r\n"; $header .= "From: SteamBuy <contacto@steambuy.com.ar>" . "\r\n"; mail($_POST["email"], $title, $body, $header, "-f contacto@steambuy.com.ar"); 

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

Важной частью является не mail() как таковая, а хост, на котором вы размещаете свой сайт. Поскольку ваш адрес электронной почты содержит всю необходимую информацию вашего хоста – IP и т. Д.

Поскольку большинство общих хостов я предполагаю, что вы их используете, у вас есть тонна пользователей, размещенных на одном сервере, и большинство / некоторые могут захотеть использовать mail() , поставщики электронной почты могут помечать черный IP-адрес хоста. Это означает, что ваш сайт включен в этот черный список.

Обход этой проблемы при использовании общего хоста не существует.

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

Если вы хотите использовать SMTP-сервер google-приложений для отправки электронной почты, это отличный способ обойти, помеченный как спам. Единственное, что нужно, чтобы убедиться, что приложения Google настроены правильно, а отправленное с помощью электронной почты такое же, как и адрес электронной почты, который вы пытаетесь отправить. Самый простой способ использования smtp-серверов google-приложений – использовать библиотеку php-почты, поскольку функция mail() является очень простой. Вот пример кода, чтобы вы начали использовать библиотеку Swiftmailer

 <?php require_once "/Swift-Email/lib/swift_required.php"; // Make sure this is the correct path $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com') ->setPort(465) ->setEncryption('ssl') ->setUsername('EMAIL') ->setPassword('PASSWORD'); $mailer = Swift_Mailer::newInstance($transport); $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(50, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE));//Add a Throttler Plugin if need be. $message = Swift_Message::newInstance($emailSubject); // Subject here $message->setFrom(array('contacto@steambuy.com.ar' => 'Contact')); // You can choose to only send one version, just replace the second parameter in the setBody() function to the type $message->setBody(HTML_VERSION, 'text/html'); // Body here $message->addPart(PLAIN_TEXT_VERSION, 'text/plain'); // and here $message->setTo($_POST["email"]); if ($mailer->send($message)) echo 'Sent'; ?>