28.02.2010 (последний раз редактировалось 28.06.2016) сайт: http://webi.ru условия использования: бесплатно
Простой, но функциональный php класс для отправки писем.
Умеет отправлять письма с помощью SMTP, либо через стандартную функцию mail().
Можно прикреплять файлы. Полная поддержка email адресов в национальных доменах (рф и любых других).
18.01.2012 Сайман
Скачал 1.6 версию, попробывал пару писем отправить и вот что выдаёт:
"Warning: implode() [function.implode]: Invalid arguments passed in Z:\home\localhost\www\PhpLib1.6\libmail.php on line 428", хотя письма доходят нормально.
19.01.2012 FAR.
Вот такая ошибка:
������ ������������ ����� : ���� /toto.gif �� ����������
Заранее Благодарен.
25.01.2012 Виктор
Сайман, судя по номеру строки это предупреждение показывает, что нет получателей.
Тогда не понятно, как письмо отправилось.
Но если все отправляет нормально, отключите предупреждения.
Для этого в начало скрипта вставьте
error_reporting(0);
25.01.2012 Виктор
19.01.2012 FAR, а у вас что то не понятное с кодировкой.
Не понятно что за ошибка
30.01.2012 Владимир
Версия 1.6 Скрипт отличный, но почему-то не могу прикрепить файл из формы (не видит путь к файлу). Пошагово получается отлично. Помогите плиз.
01.02.2012 виктор
Владимир, вашей информации недостаточно.
Для начала проверьте, в вашей форме указано
<form ... enctype="multipart/form-data"...> ?
01.02.2012 Владимир
Спасибо Виктор, но это у меня есть в форме. Не идёт.
01.02.2012 Владимир
Может быть я не правильно пишу эту строку
$m->Attach( "$attach","","attachment") ; // прикрепленный файл
03.02.2012 Asad
как быть если скажем потребуется соединение
"Authentication required"
"TLS/SSL required"
10.02.2012 а вот и я!
проблема возникла в следущем, отправляет исключительно gif файлы, и без файла ничего не отправит, как бы сделать что бы любые файлы отправлялись и только по надобности их отправки!
10.02.2012 а вот и я!
Владимир, вот тоже с формы пытаюсь отправлять, а ничего кроме gif формата не отправляет, а без файла отправлять не хочет
14.02.2012 AlexKh
Письма приходят с неправильной датой
убрал +0700 вот тут
$this->headers = "Date: ".date("D, j M Y G:i:s")." +0700\r\n";
и всё заработало нормально. какой глубинный смысл в +0700 ?
14.02.2012 AlexKh
Если сервер не требует авторизацию по SMTP, то скрипт не работает.
Думаю что правильнее всё же как-то обрабатывать такую ситуацию.
На скорую руку сделал так:
// if (!$this->smtp_serv OR !$this->smtp_login OR !$this->smtp_pass OR !$this->smtp_port) return false;
if (!$this->smtp_serv OR !$this->smtp_port) return false;
но это не универсальный подход и с этим надо что-то делать :)
15.02.2012 Александр
Просто мега класс, супер ребята! Буду использовать в свои разработках.
15.02.2012 Сайман
Я: RCPT TO:
471 too many recipients
Сервер не принял команду RCPT TO
А вот ещё такой вопрос, есть база клиентов, раньше им рассылал через наш сервер нормально новые поступления, а тут начала такая вот ошибка вылазить, я так понимаю что скрипт тут не при чём.Вопрос в том, как сделать что бы по прежнему всем рассылались?
16.02.2012 Админ
Сайман, в вашем случае сервер вам отказал и написал, что слишком многим адресатам вы хотите отправить почту. Это не ошибка скрипта или сервера, это ограничение вашего сервера.
Asad, про соединение "TLS/SSL required"
это предусмотрено, в описании есть пример
$mail->smtp_on("ssl://smtp.gmail.com","login","passw", 465); // пример защищенного соединения.
Всех остальных понял. Ситуацию с файлами проверю.
На счет прихода писем с неправильной датой - +7 это я поправку на свой часовой пояс сделал.
Выносить это в отдельную настройку не стал, в надежде на то, что кому надо тот сам поправит, но вот забыл предупредить об этом. Но с этим тоже разберусь.
К сожалению, в связи с малым количеством свободного времени НЕ могу точно обещать, что разберусь с этим на днях...
Но скажу вот что, данный класс скоро буду внедрять в один проект, поэтому все эти недочеты буду править, возможно придется расширять функционал и т.д.
Но конечно максимально постараюсь сохранить совместимость со старой версией.
Так что, если у кого то возникли еще какие-то проблемы, пишите тут, буду разбираться.
23.02.2012 Вадим
Добрый день.
Скрипт супер. Проблема в том, что не смог запустить на локальном сервере
Warning: fsockopen() [function.fsockopen]: unable to connect to mail.ru:25 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. ) in C:\server\htdocs\libmail.php on line 550
На хосте работает идеально.
28.02.2012 Петр
HELP!
Подскажите, пожалуйста, почему при отправки русскоязычного вложения в письме получаю такое имя файла "п≈п╢я─п╟п╡я│я┌п╡я┐п╧, п╪п╦я".
$letter = new Mail('UTF8');
...
$m->Attach($filename, "Здравствуй, мир.docx", "application/msword");
...
Декодер http://www.artlebedev.ru/tools/decoder/advanced/
обнаружил, что текст в формате koi8-r!
При том, что эту кодировку я вообще нигде не использую!
Кстати, если указать
$letter = new Mail('KOI8-R');
То точно такими же кракозябрами выглядит и все остальное письмо. Как будто не подхватывается unicode имя файла.
Кто знает, в чем может быть проблема?
28.02.2012 Петр
Опечаточка
Должно быть
$letter = new Mail('UTF8');
...
$letter->Attach($filename, "Здравствуй, мир.docx", "application/msword");
...
Хоть это и не меняет сути проблемы.
28.02.2012
Соответственно, строчка "п≈п╢я─п╟п╡я│я┌п╡я┐п╧, п╪п╦я" не отражает полностью настоящий вид отображаемого имени файла, поскольку обрабатывается на форуме HTML-Entities.