我尝试使用mail()
功能发送电子邮件。
但我的电子邮件被发送到垃圾邮件,它在 gmail 上完美运行,我做错了什么?
<?php
if(isset($_POST['submit'])){
$name = $_POST["name"];
$name .= " ";
$from = $_POST['from'];
$subject = $_POST["subject"];
$message = $_POST["message"];;
$to = $_POST["to"];
mail($to, $subject, $message, "from: $name \n $from \n");
echo $name;
}
?>
<form method="POST">
<input type="text" placeholder="from" name="from" />
<input type="text" placeholder="to" name="to" />
<input type="text" placeholder="name" name="name" />
<input type="text" placeholder="Subject" name="subject" />
<textarea type="text" placeholder="Message" name="message"></textarea>
<input name="submit" type="submit" />
</form>
答案 0 :(得分:4)
问题可能是$ from字段中的域名与发送电子邮件的服务器不匹配。 您发送的IP地址也可能位于您正在使用的电子邮件客户端提供商的垃圾邮件黑名单中。
还有一些其他指南会影响电子邮件客户端将您的电子邮件检测为垃圾邮件的方式,例如标题字段中的空白,缺少Reply-To
和Return-Path
标题等。
答案 1 :(得分:0)
Hotmail将您的邮件转移到垃圾邮件的原因之一是因为您让用户输入了“来自”的邮件。地址。如果发送邮件的域与标头中的起始地址不一致,则邮件将被视为垃圾邮件。有些服务器完全拒绝邮件。
使用PHPMailer或SwiftMailer肯定有助于设置正确的标题,但您绝不应发送来自其他域以外的邮件。
答案 2 :(得分:0)
除了使用不同的php库之外,还有一些关于whiletilsts / blacklists的问题,这些列表是域名/ ips,邮件托管公司使用这些列表快速将垃圾邮件从正确的邮件中删除,因此他们有时会要求您发送某种类型的电子邮件从admin @ domain ...到主持人,以证明你不是垃圾邮件机器人,请尝试检查这是否为hotmail。
您可能需要阅读:http://smallbusiness.chron.com/domain-whitelisted-hotmail-46827.html
答案 3 :(得分:-2)
使用smtp发送电子邮件然后它不会进入垃圾邮件
http://www.mendoweb.be/blog/php-send-mail-smtp-server-authentication-required/