Вы не ввели тему письма'; } elseif (empty($emailer_mails) || $emailer_mails=="Почтовые адрсе") { // Если адресов нет... $mail_msg='Не указано адреса получателей'; } elseif (empty($emailer_text) || $emailer_text=="Текст письма") { // Если сообщение пустое... $mail_msg='Вы не ввели текст письма'; } else { // Если все поля заполнены верно... // Готовим сообщение об успешной отправке... Вдруг у вас какой-то необычный браузер $mail_msg='Ваше сообщение отправлено.
Нажмите здесь, если ваш браузер не поддерживает перенаправление.'; // Готовим заголовки письма... Будем отправлять письма в формате HTML и кодировке UTF-8 $headers="MIME-Version: 1.0\r\n"; $headers.="Content-type: text/html; charset=utf-8\r\n"; $headers.="From: $emailer_yourmail"; // Обработка письма. Нужно удалить лишние пробелы и проставить переносы. // $emailer_text=ereg_replace('/ +/',' ',$emailer_text); // множественные пробелы заменяются на одинарные // $emailer_text=ereg_replace('/(\r\n){3,}/','\r\n\r\n',$emailer_text); // убираем лишние переносы (больше 1 строки) $emailer_text=str_replace('\r\n','
',$emailer_text); // ставим переносы // Получаем массив адресов. В качестве разделителя у нас используется запятая. $emails=explode(",", $emailer_mails); $count_emails = count($emails); // Подсчёт количества адресов // Запускаем цикл отправки сообщений for ($i=0; $i<=$count_emails-1; $i++) // Отчёт начинается в массиве с нуля, поэтому уменьшаем сумму на единицу { // Подставляем адреса получаетелей и обрезаем пробелы с обоих сторон, если таковые имеются $email=trim($emails[$i]); // Отправляем письмо и готовим отчёт по отправке if($emails[$i]!="") { // Проверка на случай попадения в массив пустого значения if(mail($email,$emailer_subj,$emailer_text,$headers)) $report.="
  • Отправлено: ".$emails[$i]."
  • "; else $report.="
  • Не отправлено: ".$emails[$i]."
  • "; sleep(5); // Делаем тайм-аут в 5 секунд } } // Запись отчёта в файл. Файл будет сгенерирован в той же папке, под названием log.txt. Проверьте настройку прав папки. $log=fopen("log.txt","w"); fwrite($log,$report); fclose($log); // Переменная $sent – признак успешной отправки $sent=1; } } else { // Если в массиве POST пусто, форма еще не передавалась // Готовим приглашение $mail_msg='Все поля обязательны для заполнения.'; // Поля темы, адресов получаетелей и получателей, и текста в этом случае должны быть пустыми $emailer_text=$emailer_subj=$emailer_mails=$emailer_yourmail=''; } // Если $sent не существует, выводим форму или отчёт if (!isset($sent)) { // Если сообщение уже отправлено - выводим отчёт if(isset($_GET['messent'])) {echo $text.="Всё окей. Сообщение отправлено. Ещё?

    Отчёт:
      "; readfile("log.txt"); echo"
    ";} else { // Или выводим форму, если сообщение ещё не отправлено echo $text.=<< function form_validator(form) { if (form.emailer_subj.value=='' || form.emailer_subj.value=='Тема письма') { alert('Укажите тему письма.'); form.emailer_subj.focus(); return false; } if (form.emailer_mails.value=='' || form.emailer_mails.value=='Почтовые адреса') { alert('Укажите адреса получаталей.'); form.emailer_mails.focus(); return false; } if (form.emailer_text.value=='' || form.emailer_text.value=='Текст письма') { alert('Вы не заполнили поле сообщения.'); form.emailer_text.focus(); return false; } return true; }

    $mail_msg

    post; } } else { // А если существует... // Посылаем в заголовке редирект (303 Refresh) на этот же адрес с дополнительным параметром messent $ret_uri=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; header("Refresh: 0; URL=http://".$ret_uri."?messent"); exit; } ?>