2012-01-10 6 views
1

나는 이것에 대해 많은 것을 읽고 있었지만 여전히 해결책을 찾지 못했습니다. 나는 일단 양식을 제출하면 사용자에게 이메일로 바우처를 보내는 사이트를 만들고 있습니다. 내가 겪고있는 문제는 스크립트에서 보낸 메일이 스팸 필터에 의해 스팸으로 차단되고 있지만 아직 사용자가 제출하지 않았기 때문입니다. 이 스크립트는 제가 사용하고있는 스크립트입니다 :mail()에서 보낸 모든 메일이 스팸 함으로 전달되지만 머리글은 정확합니다.

<?php 

error_reporting(0); 

include("/home/users/web/b2243/moo.wheree/inc/event.inc"); 
include("/home/users/web/b2243/moo.wheree/inc/ad.inc"); 

$boundary = md5(time()) . "-2"; 
$eol = "\r\n"; 
$subject = "Tonights wheree voucher - $offer"; 

$fromaddress = "[email protected]"; 
$fromname = "wheree"; 

$headers = ''; 
$headers .= "Message-ID: <".time()."-".$fromaddress.">" . $eol; 
$headers .= "Date: ".date('r'). $eol; 
$headers .= "From: ".$fromname. "<".$fromaddress.">" . $eol; 

$headers .= "Reply-To: ".$fromname. "<".$fromaddress.">" . $eol; 
$headers .= "Return-Path: ".$fromname."<".$fromaddress.">" . $eol; 

$headers .= "X-Mailer: PHP v" .phpversion(). $eol; 
$headers .= 'MIME-Version: 1.0' . $eol; 
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"" . $eol . $eol; 

$headers .= "This is a MIME-formatted message.". $eol . $eol; 

$msg = ''; 

//text 
$msg .= "--" . $boundary . $eol; 
$msg .= "Content-Type: text/plain; charset=gb2312" . $eol; 
$msg .= "Content-Transfer-Encoding: 8bit" . $eol; 
$msg .= "Content-Disposition: INLINE" . $eol; 
$msg .= "Content-Description: INLINE Description;" . $eol; 
$msg .= strip_tags(str_replace("<br>", "\n", $rBody)); 
$msg .= $eol . $eol; 

//html 
$msg .= "--" . $boundary . $eol; 
$msg .= "Content-Type: text/html; charset=utf-8;" . $eol; 
$msg .= "Content-Transfer-Encoding: 8bit" . $eol; 
$msg .= "Content-Disposition: INLINE" . $eol; 
$msg .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">" . $eol; 
$msg .= 'Message Contents' . $eol; 
$msg .= $eol . $eol; 

$mail_sent = mail($email, $subject, $msg, $headers, "-f [email protected]"); 

// Check if Mail is sent 
if ($mail_sent) 
include("/home/users/web/b2243/moo.wheree/inc/sent.php"); 
else { 
echo "<br> Message not sent, <a href="/">have another go</a>.<br>"; 
} 

?> 

사이트가 공유 호스팅 계획에서 호스팅되었는데, 이것이 문제가 될 수 있습니까? 나는 역방향 DNS에 대해서도 들었다. 귀하의 도움에 미리 감사드립니다.

+1

아마 이미 스팸 발송자로 블랙리스트에 등록되어 있습니까? 당신은 자신에게 메일을 보내려고 할 수 있습니다. 때로는 스팸 방지 도구가 헤더를 추가하기 때문에 스팸이라고 생각하는 이유를 알 수 있습니다. – KingCrunch

+0

사이트가 아직 시작되지 않았기 때문에 가능성은 희박합니다. –

+1

공유 호스팅은 심각한 사이트에는 좋지 않으며, 헌신적으로 노력하면 모든 문제를 통제 할 수 있습니다. – Dan

답변

1

여기에는 로트이있을 수 있습니다. 공유 호스팅이 문제 일 수 있습니다. 그렇습니다. http://www.mxtoolbox.com/blacklists.aspx과 같은 블랙리스트 조회 도구에서 서버의 IP를 확인하십시오. (공유 호스팅에만 관련이있는 것은 아니며 전용 호스팅에서도 발생할 수 있습니다.   — of 15-20 IP 지난 몇 년 동안 새 전용 서버를 할당 받았으며 적어도 2 개는 이미 블랙리스트에있었습니다. 내가 새 서버를 얻을 때 확인하는 것). 도메인에 SPF을 설정하여 해당 IP를 유효한 발신자 (수신 메일 서버 및 클라이언트 확인 또는 신뢰 SPF가 수신 메일 서버에 연결되었는지 여부)로 명시 적으로 나열 할 수 있습니다. 그리고 클라이언트이지만, 뭔가가이며, 활성 블랙리스트 레코드를 무시하는 것은 아닙니다.

요즘은 메일 서버를 실행하는 것이 뒤에서 꽤 큰 고통입니다. 나는 오래 전에 그것을 아웃소싱하기 위해 연간 적은 금액의 돈을 쓰는 것을 선택했다 (내 경우에는 Runbox). 내 코드는 내가 관리하는 메일 서버가 아닌 SMTP 서버를 통해 전송됩니다. 내 경우에는 을 통해을 전송합니다 (수신 이메일의 자동 처리가 없으므로 Google Apps에만 전송하도록 설정). 일반적인 프로토콜을 사용하여 보내고받을 수 있습니다. 번거로운 요소를 줄여주는 치료법입니다. 뿐만 아니라 당신을 위해 메일 서비스를 할 많은 다른 회사들이 있습니다. 나는 개념을 위해서이 특정 광고를 쓰지 않을 것입니다.

+0

제공된 도구를 확인한 후에 IP가 검은 색으로 나열되지 않습니다. 지금 Runbox와 같은 서비스를 찾고 있습니다. 고마워요. –

+0

@ RyanBrodie : 그건 좋은 소식입니다. :-) 그것으로 행운을 비네. –

2

공유 호스팅 계정에서 보내는 경우 알아 두어야 할 중요한 두 가지 사항이 있습니다.

  1. 웹 사이트와 동일한 IP 주소에서 호스팅되는 수천 개의 도메인이있을 수 있습니다. 다른 모든 사이트가 전자 메일을 통해 수행하는 작업은 모두 사용자가 제어 할 수 없으며 IP는 다른 사이트의 "그늘진 활동"을 위해 여러 블랙리스트에 쉽게 포함될 수 있습니다.
  2. 이미 언급했듯이 일부 메일 서버는 보내는 메일 서버의 IP 주소를 역방향 조회합니다. 귀하의 도메인 이름과 일치하지 않는 도메인 이름은 안티 스팸 도구에 의해 "의심스러운"것으로 간주 될 수 있습니다.

가장 좋은 방법은 배달 가능성을 높이기 위해 메일 서버/클라이언트에서 도메인을 허용 목록에 추가해야한다는 것을 사용자/회원에게 알리는 것입니다. 이것이 충분하지 않다면, VPS, 전용 서버 또는 심지어 자신의 PI 공간과 같은 일부 전용 호스팅 솔루션을 심각하게 고려해야합니다.

+0

[mxtoolbox] (http://www.mxtoolbox.com/SuperTool.aspx)에 대한 빠른 확인을 실행 한 후 사이트의 IP가 검은 색으로 나열되지 않습니다. 이는 옵션이지만, 사용자가 스팸 메일 박스를 확인하더라도 스팸 메일 박스를 확인하지 않는다고 보장 할 수는 없습니다. –

관련 문제