我正在尝试通过电子邮件向新注册用户发送电子邮件验证(PHP),但我不明白,为什么要将电子邮件发送到垃圾邮件,我已经检查了类似问题,所有答案都是关于标题,
对于我来说,了解这些标题似乎有点复杂,以及它们如何被验证,
发件人网站?假设我发送的是user@google.com,实际的服务器域名是domain.com,它怎么知道?它是垃圾邮件的主要原因之一吗?
我正在使用VPS,它与它有什么关系吗?
我只是想了解为什么将电子邮件作为垃圾邮件检查的明确/简单原因
如果我从服务器IP而不是域本身发送了怎么办
答案 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)