0

我有一个网站,它为注册的人发送一封邮件,绝对不是垃圾邮件。问题是我在 PHP 中使用 mail() 函数,但很多人将它作为垃圾邮件接收。

$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");

所以我想知道我做错了什么,我该如何解决。我不希望我的邮件显示为垃圾邮件,因为其中一些可能包含有价值的信息。

4

2 回答 2

4

重要的部分不是mail()本身,而是您托管网站的主机。因为您的电子邮件包含您主机的所有相关信息——IP 等等。

由于大多数共享主机,我假设您正在使用一个,在单个服务器上托管大量用户,并且大多数/一些可能想要使用mail(),电子邮件提供商可能会将主机的 IP 列入黑名单。这意味着您的网站包含在该黑名单中。

使用共享主机时无法解决此问题。

于 2013-05-26T19:00:40.623 回答
1

正如@MorganWilde 提到的,电子邮件被标记为垃圾邮件的第一个原因是主机被列入黑名单。通常这是因为您在共享服务器上,而其他用户过去可能滥用过该服务。

如果您想使用您的 google 应用程序 smtp 服务器发送电子邮件,这是避免被标记为垃圾邮件的好方法。唯一的事情是确保正确设置谷歌应用程序,并且从电子邮件发送的电子邮件与您尝试发送的电子邮件相同。使用 google 应用程序 smtp 服务器的最简单方法是使用 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';

?>
于 2013-05-26T19:37:24.307 回答