PHP电子邮件发送垃圾邮件

时间:2012-07-26 09:29:02

标签: php email header spam

我正在尝试通过电子邮件向新注册用户发送电子邮件验证(PHP),但我不明白,为什么要将电子邮件发送到垃圾邮件,我已经检查了类似问题,所有答案都是关于标题,

对于我来说,了解这些标题似乎有点复杂,以及它们如何被验证,
发件人网站?假设我发送的是user@google.com,实际的服务器域名是domain.com,它怎么知道?它是垃圾邮件的主要原因之一吗? 我正在使用VPS,它与它有什么关系吗?
我只是想了解为什么将电子邮件作为垃圾邮件检查的明确/简单原因

如果我从服务器IP而不是域本身发送了怎么办

4 个答案:

答案 0 :(得分:1)

大多数邮件服务器都会执行Reverse DNS lookup以阻止来自domain.com的人假装来自otherdomain.com。它将检查发送电子邮件的IP地址是否解析为电子邮件发件人的同一域名。雅虎和其他大公司也将使用DKIM来验证您。

如果您的邮件内容不多,或者您向一台服务器发送了大量相同的内容,那么您的邮件通常会以批量/垃圾邮件结束。

这是一篇关于what web developers should know about sending email的好文章,可能有助于您理解这一主题。

答案 1 :(得分:0)

1)检查标题。您可以使用任何电子邮件发送库,例如PHPMailer(http://code.google.com/a/apache-extras.org/p/phpmailer/wiki/PHPMailer#Documentation_and_Resources)

2)检查托管服务器。如果您使用的是共享主机,那么很可能它已被电子邮件域列入黑名单。

答案 2 :(得分:0)

您的域上配置电子邮件地址,将me@mydomain.com替换为您的域上新创建的电子邮件地址,并使用您的Hotmail / id@hotmailOrgmail.com替换Your Name以下脚本中的Gmail ID。

在以下脚本中将<?php $myName = "Your Name"; $myEmailAddressonDomain = "me@mydomain.com"; $myPreferredEmailAddresson = "id@hotmailOrgmail.com"; $mail = $_POST['email_field']; $clientName = $_POST['name_field']; $subject = $_POST['subject_field']; $text = $_POST['message_field']; $headers = 'From: "$name" <$yourEmailAddressonDomain>'.PHP_EOL.'Reply-To: '.$_POST['mail'].PHP_EOL; $to = '"$yourname" <$myPreferredEmailAddresson>'; $message = $text.PHP_EOL.PHP_EOL."---".PHP_EOL."From: ".$name." <".$mail.">"; /* Server-side form validations */ $err = "Error with "; if (!checkLen($name)) { $err.='Name'; } else if (!checkLen($mail) && !checkEmail($mail)) { $err.='Email'; } else if (!checkLen($subject)) { $err.='Subject'; } else if (!checkLen($text)) { $err.='Message'; } if (strlen($err)>11) { echo $err.' field'; exit; } /* end validations */ elseif (mail($to, $subject,$message, $headers)) { echo "<span style='color: #336600'>Your message has been sent.</span>"; } else { echo "An error occurred, please try again."; } function checkLen($str,$len=1) { return isset($str) && mb_strlen(strip_tags($str),"utf-8") > $len; } function checkEmail($str) { return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); } ?> 替换为您的名字,并在您的服务器上进行测试:

Reply-To

该电子邮件将通过您所在域的电子邮件地址登陆您的Hotmail / Gmail收件箱(或任何非垃圾邮件)文件夹。

注意: 在收到的电子邮件中点击回复会显示客户的电子邮件地址(正如我们在上面{{1}}标题中设置的那样)< / em>的

做出适当的改变,你很高兴。

答案 3 :(得分:0)

在您操作VPS时,您可以考虑在服务器上设置DKIMSPF,Gmail等邮件服务会将其用作合法服务器。