在Linux,Cent OS上使用SMTP Auth发送邮件

时间:2012-01-21 12:00:09

标签: php email

我有一个脚本发送了很多电子邮件来发送通知,但由于它不是经过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";
} 

1 个答案:

答案 0 :(得分:0)

电子邮件进入垃圾箱的原因可能是多种多样的,例如您声称这些电子邮件来自您实际上并不拥有的某些域名(例如gmail.com)。

你是正确的,连接到&#34;官员&#34; SMTP服务器(比方说,gmail)和发送电子邮件与该服务器将解决问题。但是,在我看来,这个问题不应该在php脚本中解决/配置,而应该在你的MTA(邮件传输代理)程序中。可以找到在Debian中使用Exim4作为MTA的示例配置here。其他操作系统中的配置应该类似。没有必要修改你的php脚本。

[更新]我做了更多搜索,发现问题也可以在php脚本中解决。 This article可能有用。