我有一个脚本发送了很多电子邮件来发送通知,但由于它不是经过SMTP身份验证,因此邮件会直接进入垃圾邮件。如何进行验证呢?
我正在使用以下脚本:
$to = $email . ', '; // note the comma
// subject
$subject = 'MineAlert - Server Down';
// message
$message = '
<html>
<head>
<title>Your server seems to be down, this could be because it has crashed or you have stopped it</title>
</head>
<body>
<p>Your server seems to be down, this could be because it has crashed or you have stopped it</p>
<p>IP: <b>'.$ip.'</b><br>
<p>Port: <b>'.$port.'</b><br>
<p>Reason: <b>Unknown</b><br>
<br>
This email has been generated and sent to you by
</body>
</html>
';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'From: test@test.com' . "\r\n";
// Mail it
$mail = mail($to, $subject, $message, $headers);
if (!$mail){
echo "Mail did not send";
} else {
echo "Mail Sent";
}
答案 0 :(得分:0)
电子邮件进入垃圾箱的原因可能是多种多样的,例如您声称这些电子邮件来自您实际上并不拥有的某些域名(例如gmail.com)。
你是正确的,连接到&#34;官员&#34; SMTP服务器(比方说,gmail)和发送电子邮件与该服务器将解决问题。但是,在我看来,这个问题不应该在php脚本中解决/配置,而应该在你的MTA(邮件传输代理)程序中。可以找到在Debian中使用Exim4作为MTA的示例配置here。其他操作系统中的配置应该类似。没有必要修改你的php脚本。
[更新]我做了更多搜索,发现问题也可以在php脚本中解决。 This article可能有用。