2012-01-21 2 views
0

알림을 제공하기 위해 이메일을 보내는 스크립트가 있지만 SMTP 인증이 아니기 때문에 메일은 곧바로 정크 메일이됩니다. 어떻게하면 인증을 받습니까?Linux, Cent OS에서 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: [email protected]' . "\r\n"; 

// Mail it 
$mail = mail($to, $subject, $message, $headers); 
if (!$mail){ 
    echo "Mail did not send"; 
} else { 
    echo "Mail Sent"; 
} 
+0

['mail()'기능] (http://www.hardened-php.net/suhosin/configuration.html#suhosin.mail.protect)에주의하십시오. – sarnold

답변

0

이유는 여러 가지있을 수 있습니다를, 예를 들어, 당신은 이메일이 실제로 소유하지 않은 일부 도메인으로부터 왔다고 주장하고 있습니다 (gmail.com).

"공식적인"SMTP 서버 (예 : gmail)에 연결하고 해당 서버로 이메일을 보내면 문제가 해결된다는 것이 맞습니다. 그러나, 내 의견으로는이 문제는 PHP 스크립트에서 해결되거나 구성되어서는 안되지만 MTA (Mail Transfer Agent) 프로그램에 있어야합니다. 데비안에서 Exim4를 MTA로 사용한 설정 예제는 here입니다. 다른 OS의 구성도 비슷해야합니다. PHP 스크립트를 수정할 필요가 없습니다.

[업데이트] 나는 더 많은 검색을했는데 문제가 또한 PHP 스크립트에서 해결 될 수 있다는 것을 알았다. This article이 유용 할 수 있습니다.

관련 문제