Сбой функции PHP Mail () - PullRequest
       5

Сбой функции PHP Mail ()

0 голосов
/ 28 апреля 2009

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

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

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: newsletter@subdomain.domain.com\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");

  }
}

Ответы [ 2 ]

4 голосов
/ 28 апреля 2009

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

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

К этому:

return implode(', ', $elements);
2 голосов
/ 28 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...