Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

плохо работает PEAR::Mail_mime и Mail

312
26 августа 2009 года
dead_star
392 / / 26.11.2006
перерыл кучу статей по теме PEAR::Mail_mime
пытаюсь реализовать но работает очень плохо
вот мой код
Код:
require_once(ROOT."/core/PEAR/Mail.php");
require_once(ROOT."/core/PEAR/Mail/mime.php");

// инициализация основных данных
$subject = "Test MIME сообщение ".$Application->vars['mail_driver'];
$text = "Test Messege.\r\nЯ есть тестовое сообщение\r\nNew test of PEAR::Mail";
$html = "<html><body><strong>Test Messege</strong><br />Я есть тестовое сообщение<br />New test of PEAR::Mail</body></html>";
$to = "test@mail.ru";

// параметры функций библиотеки
$build_params = array(
 'html_charset'  => $Application->vars['mail_charset'],
 'text_charset'  => $Application->vars['mail_charset'],
 'head_charset'  => $Application->vars['mail_charset'],
);
$xtra_headers = array(
 'From' => $Application->vars['mail_from_name']." <".$Application->vars['mail_from'].">",
 'Subject' => $subject,
);

// инициализация Mail_mime
$mime = new Mail_mime();
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
// получаю данные в формате mail mime
$body = $mime->get($build_params);
$headers = $mime->headers($xtra_headers);

// параметры для соединения по SMTP
$param = null;
if ($Application->vars['mail_driver']=="smtp"){
 $param = array(
  'host'     => $Application->vars['mail_server'],
  'port'     => $Application->vars['mail_port'],
  'auth'     => true,
  'username' => $Application->vars['mail_username'],
  'password' => $Application->vars['mail_password'],
 );
}
// отправка запроса
$mail = Mail::factory($Application->vars['mail_driver'], $param);
$status = $mail->send($to, $headers, $body);
// проверка результата
if (PEAR::isError($status)){
 echo $status->getMessage();
} else {
 echo "Message successfully sent!";
}

собственно код ничего особенного из себя не представляет
тоже самое вы найдете в любой статье про Mail_mime
так вот проблема следующая
1. не удается указать имя отправителя на русском языке
возникает ошибка на уровне пакета
Цитата:
Validation failed for: =?windows-1251?Q?=C0=E2=F2=EE=F1=EB=F3=E6=E1=E0=20?=


2. частенько возникают глюки с отправкой через smtp
минут по 5 думает а потом возвращает белый экран
ни ошибок, ни предкприждений. просто белый экран и я никак немогу понять как мне если не предотвратить эту ошибку,
то хотябы вернуть пользователю крректную информацию об ошибке
ps почту отправляю через smtp.mail.ru
3. сейчас возник еще один странный глюк
когда отправляю через функцию mail() то мне приходит письмо с пустым телом, тоесть все заголовки есть, а тела письма нет

читал что народ пишет по этому поводу
говорят что пользоваться библиотекой PEAR::Mail вовсе не обязательно
можно пользоваться стандартными методами
попробовал, но тоже ничего не получилось

Код:
mail($to, $subject,
"--=_ff9387f0b4bb813c17677f820e1db150
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=\"windows-1251\"

Test Messege.
New test of PEAR::Mail
Mail on http://mesi.ru

--=_ff9387f0b4bb813c17677f820e1db150
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=\"windows-1251\"

<html><body>
<strong>Test Messege</strong><br>
New test of PEAR::Mail<br>
Mail on http://mesi.ru<br>
</body></html>
--=_ff9387f0b4bb813c17677f820e1db150--"
,
"MIME-Version: 1.0
From: Автослужба <web@mesi.ru>
Content-Type: multipart/alternative;boundary=\"=_ff9387f0b4bb813c17677f820e1db150\""
);

тоже приходит пустое тело
36K
26 августа 2009 года
temporary_user
50 / / 07.05.2009
хм, может и не в тему, но предложу...
можно же для почты использовать внешнюю софтину (например, тот же sendmail); и обрабатывать уже ее ошибки, если какие-то проблемы с доставкой и т.п.
размещение подобных "крох" на веб-сервере вообще не проблема, да и размер кода для обработки почты перлом сократится до 7-8 строк

если надо могу и сам код привести..
312
28 августа 2009 года
dead_star
392 / / 26.11.2006
to temporary_user
на мой взгляд использование внешних программ для отправки почты не самый лучший вариант
да и обработка ошибок будет более эффективной при прямом обращении к почтовому серверу
хотя я могу ошибаться

где-то вроде мне попадалось упоминание о том, что некорректное определение имени отправителя это баг который совершил разработчик пакета
хотя я к сожаленью не помню где об этом упоминалось и как это лечить
312
31 августа 2009 года
dead_star
392 / / 26.11.2006
ведутся горячие обсуждения
страсти накаляются
стук клавиш оглушает все вокруг
каждый хочет высказаться
ну как же так, а вдруг его не услышат в шуме толпы
мнение каждого важно и бесценно
и вот пошли уже капсы
многозначительные смайлы
и стройные ряды восклицательных знаков
великие гуру все больше входят в транс
молодняк бьется в истерике
дебаты развернулись не на шутку
только бы форум выдержал такой натиск
312
09 сентября 2009 года
dead_star
392 / / 26.11.2006
вот уже 2 недели прошло с момента последнего ответа
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог