2009-04-28 4 views
0

Я пытаюсь отправить электронное письмо на несколько адресов, поэтому я написал функцию, которая извлекает электронные письма из базы данных и разделяет их запятой, но часть рассылки продолжает сбой. Однако аналогичная функция getmails() работает на другой странице, поэтому я действительно потерял то, что я делаю неправильно. Вот мой код, любая помощь будет оценена.Ошибка функции PHP Mail()

Спасибо всем.

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

В дополнение к Обход RichieHindle, причина, по которой ваша почта не работает, заключается в том, что вы печатаете результаты в функции, а не возвращаете их. Вы должны изменить это:

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

к этому:

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

Смотрите, вот почему я люблю это место ... Иногда возникает второй взгляд, чтобы увидеть проблему .. Большое спасибо за ваш ответ :) – Lea

2

Я не знаю, является ли ваша проблема или нет, но две из линий, которые строят $mailheader отбрасывая предыдущее значение, потому что вы используете $mailheader = ... вместо $mailheader .= ...

+0

Спасибо. Это решило другую проблему, с которой я столкнулся, и был указан адрес электронной почты, указанный в качестве отправителя, вместо указанного мной электронного адреса. Спасибо за ваш ответ :) – Lea

Смежные вопросы