2009-04-28 3 views
0

메신저는 여러 주소로 전자 메일을 보내려고합니다. 그래서 데이터베이스에서 전자 메일을 가져와 각 요소를 쉼표로 구분하지만 우편 부분은 계속 실패하는 함수를 작성했습니다. 그러나 getmails()와 비슷한 기능이 다른 페이지에서 작동하기 때문에 내가 잘못하고있는 것에 관해서 정말로 잃어버린다. 여기 내 코드입니다, 어떤 도움을 주시면 감사하겠습니다.PHP 메일() 함수가 실패했습니다

감사합니다.

function getmails() 
    { 
    $id = mysql_query("SELECT * FROM subscribes ORDER BY subscribe_id DESC") or die(mysql_error()); 
$elements = array(); 
while($activeArray=mysql_fetch_array($id)) 
{ 
    $elements[] = $activeArray['subscribe_email'] ; 
} 
$main = implode(', ', $elements); 
print $main; 

} 

function announce() { 

if(isset($_POST['announce'])) { 
    $ToEmail = getmails(); 
$EmailSubject = "".$_POST['title'].""; 
$mailheader .= "From: [email protected]\r\n"; 
$mailheader = "Reply-to:".$_POST['author']."@subdomain.domain.com\r\n"; 
$mailheader = "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Author: ".$_POST['author']."<br>"; 
$MESSAGE_BODY = "Newsletter: ".$_POST['content']."<br>"; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 

    } 
} 

답변

4

보다는 $mailheader = ...을 사용하고 있기 때문에, 이것은 문제 여부,하지만 $mailheader 이전 값을 폐기하는 빌드 라인이 있는지 여부를 모른다 RichieHindle의 말투, 메일이 작동하지 않는 이유는 반환하는 것과 반대로 결과를 인쇄하기 때문입니다. 이을 변경해야합니다 : 여기에

$main = implode(', ', $elements); 
print $main; 

:

return implode(', ', $elements); 
+0

내가 왜이 곳을 사랑하는 것을 참조하십시오 ... 때로는 문제를 볼 수있는 두 번째 눈이 걸립니다 .. 당신의 대답을 많이 고마워요 :) – Lea

2

이 외에도 $mailheader .= ...

+0

감사합니다. 이것은 내가 말했던 다른 문제를 해결했다. 이메일은 내가 지정한 이메일 대신 발신자로 표시되었다. 귀하의 답변 주셔서 감사합니다 :) – Lea