2014-10-16 3 views
0

gmails 스팸 필터에 문제가있어 클럽 이벤트 캘린더를 수정해야합니다. 다음 코드를 수정하여 보낸 사람 전자 메일이 이제 "회신"이고 "보낸 사람"이 "[email protected]"가되도록 노력하여 우리 도메인의 전자 메일을 사용하여 스팸 문제. 메일이 전송되지 않고이 오류가 발생합니다. "Reply-To : 누락되었거나 잘못된 로컬 파트 (예상 단어 또는"< ")"PHP를 통해 메일 보내기, 기형 답장

회신 메일을 동일한 결과로 변경하려고 시도했습니다. 내가 가서 PHP를 배우는 중이 야이 코드의 아무도 내, 난 그냥 작동하도록 노력하고있어.

다음은 내가 수정 한 코드입니다.

<?php 
require('wordpress/wp-load.php'); 
get_header(); 
?> 

<div id="container"> 
    <div id="content" role="main"> 

<?php 
include ("inc/functions.inc"); 
include ("inc/dbconnect.inc"); 

$db = db_connect(); 

$cookie = $_COOKIE[User]; 
$cookiearray = explode(",",$cookie); 
if (isset($_POST['to'])){ 
    $particode = $_POST['IDs']; 
    $participants = explode(",",$particode); 
    $search = ""; 
    $numpar = count($participants)-1; 
    for ($i=0;$i<=$numpar;$i++){ 
     if ($search == ""){ 
      $search = "ID LIKE ".$participants[$i]; 
     }else { 
      $search = $search." OR ID LIKE ".$participants[$i]; 
     } 
    } 
    $result = mysql_query("SELECT Mail FROM users WHERE ".$search, $db); 
    if (!$result) { 
     die('Invalid query: ' . mysql_error()); 
    } 
    $msg = $_POST['msg']; 
    $subject = $_POST['subject']; 
    $numpar = mysql_num_rows($result)-1; 
    for ($i=0;$i<=$numpar;$i++){ 
     if ($i == 0){ 
      $to = mysql_result($result,$i,'Mail'); 
     }else { 
      $to = $to.", ".mysql_result($result,$i,'Mail'); 
     } 
    } 
    $result = mysql_query("SELECT Mail FROM users WHERE ID LIKE ".$cookiearray[0], $db); 
    if (!$result) { 
     die('Invalid query: ' . mysql_error()); 
    } 
    $replyto = mysql_result($result,0,'Mail'); 


    $from = '[email protected]'; 

    $test = mail($to, $subject, $msg,'From: '.$from,'Reply-To: '.$replyto); 


    if ($test){ 
     Echo "<b>Mail sent</b>"; 
    }else{ 
     echo "<b>An error has occured trying to send your mail, sorry</b>"; 
    } 
}Else { 
    $particode = $_POST['participants']; 
    $participants = explode(",",$particode); 
    $search = ""; 
    $numpar = count($participants)-1; 
    for ($i=0;$i<=$numpar;$i++){ 
     if ($search == ""){ 
      $search = "ID LIKE ".$participants[$i]; 
     }else { 
      $search = $search." OR ID LIKE ".$participants[$i]; 
     } 
    } 
    $result = mysql_query("SELECT Name FROM users WHERE ".$search, $db); 
    if (!$result) { 
     die('Invalid query: ' . mysql_error()); 
    } 
    Echo "<form name='mailform' action='eventmail.php' method='POST'>\n 
    <table border='0'>\n 
    <tr><td><b>To:</b></td><td><textarea rows='2' cols='45' name='to' readonly>"; 
    for ($i=0;$i<=$numpar;$i++){ 
     if ($i == 0){ 
      echo mysql_result($result,$i,'Name'); 
     }else { 
      echo "; ".mysql_result($result,$i,'Name'); 
     } 
    } 
    Echo "</textarea><input type='hidden' name='IDs' value='".$particode."'></td></tr>\n 
    <tr><td valign='top'><b>Subject:</b></td><td><input type='text' name='subject' size='45'></td></tr>\n 
    <tr><td valign='top'><b>Message:</b></td><td><Textarea name='msg' rows='20' cols='45'></textarea></td></tr>\n 
    <tr><td colspan=2 valign='top'><input type='submit' value='Send mail'></td></tr></table>\n 
    </form> 
    "; 
} 

?> 

</div> 
</div> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 

감사합니다.

+0

<> 사이에 회신 메일을 넣으려고했지만 동일한 오류가 발생합니다. – hippytyre

답변

0

이 헤더를 사용할 수 있습니다.

$headers = array(); 
$headers[] = "MIME-Version: 1.0"; 
$headers[] = "Content-type: text/html; charset=iso-8859-1"; 
$headers[] = "From: $brand_name <$from>"; 
$headers[] = "Bcc: Name <[email protected]>"; 
$headers[] = "Reply-To: Recipient Name <[email protected]>"; 
$headers[] = "Subject: {$subject}"; 
$headers[] = "Return-Path: <$from>"; 
$headers[] = "X-Priority: 3";//1 = High, 3 = Normal, 5 = Low 
$headers[] = "X-Mailer: PHP/" . phpversion(); 
mail($to, $subject, $message, implode("\r\n", $headers)); 
+0

감사합니다. – hippytyre

관련 문제