У меня есть веб-сайт, который отправляет одно письмо для тех, кто регистрируется, а не спам. И дело в том, что я использую функцию 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'; ?>