28.02.2010 (последний раз редактировалось 28.06.2016) сайт: http://webi.ru условия использования: бесплатно
Простой, но функциональный php класс для отправки писем.
Умеет отправлять письма с помощью SMTP, либо через стандартную функцию mail().
Можно прикреплять файлы. Полная поддержка email адресов в национальных доменах (рф и любых других).
07.03.2011 MannishArt
дело в том,что тему и заголовок я отправляю из программы,
data := TStringList.Create;
data.Add('subject='+(sMemo1.Text)) ;
IdHTTP1.Post('http://hosting/php_libmail/mail.php',data);
и вот потом приходит письмо,но с какой-то странной кодировкой,хотя если из самого скрипта отправлять,то всё норм...
вот и что делать?
07.03.2011 MannishArt
всё,разобрался,помогло добавление в скрипт строки
$subject=iconv("UTF-8", "WINDOWS-1251",$_POST['subject']);
07.03.2011 админ
MannishArt, на счет обрезания имени файла.
Похоже просто происходит какой-то конфликт со скобками и русским текстом.
Вообще, никогда не используйте русские имена файлов в скриптах.
Так как скрипт в этом случае не будет работать везде одинаково, на одном сервере будет работать нормально, на другом будет глючить.
31.03.2011 colexc
Скажите, а как можно отправить письма нескольким адресатам сразу, но чтобы они отправлялись по очереди? Тоесть смысл в том, чтобы человек не получал письмо в котором мог увидеть, кому я ещё такие же письма отправил. Можно сделать так, чтобы в цикле обнулять переменную To (кому), но не создавая заново сообщение?
31.03.2011 colexc
А всё, сам разобрался. Внес коррективы.
16.05.2011 KATapcuc
прошу добавить класс для очистки списка ящиков, можно ставить сразу после $m->Send();
function ClearAddresses() {
$this->sendto = array();
}
17.05.2011 Александр
Уважаемый автор. Прекрасный скрипт. Но есть вопрос, можно ли проверить результат доставки?
17.05.2011 админ
KATapcuc, а цель какая для очистки списка ящиков?
просто интересно, для чего это может пригодиться
17.05.2011 админ
Александр, нет, результат доставки отследить нельзя.
19.05.2011 Александр
Спасибо за класс.
Я могу предположить, что за основу был взят класс из фреймверка CodeIgniter? Уж очень похож.
И вообщем то уже стоит использовать PHP5 в полной мере и избавиться от поддержки PHP4. Так ошибки можно выдавать при помощи Exception. Тогда будет еще проще интегрировать класс в системы управления, где зачастую применяются специальные обработчики ошибок. Например
20.07.2011 Максим
Великолепный скрипт, пользуюсь им регулярно в своих проектах, но недавно возник вопрос, отправляю письмо (не через SMTP) на 3 и более ящика. Ящики помещаю в массив, после отправки письма не приходят. Уменьшаю количество ящиков до 2-х все работает, 3 или 4 ящика письма не приходят. В чем может быть причина, подскажите пожалуйста. Хотелось бы отправлять письма на любое количество ящиков в массиве.
29.07.2011 zed221
проверил на сервере h19.ru не работает может што-то не так в смысле надо што-то добавить вписать чтоб заработал а можно сделать допустим из таких исходников чтоб отправлялось не на почту саобьщения а на мобильный телефон смс слышал што как-то можно с почты отправлять смс на мобильные телефоны допустим нужна вписывать 380993590240@sms.mts.ua но при проверки у меня не получалась отправлять смс может што-то надо по другому писать если хто знает ответ напишите на маю почту ynii@list.ru или в асю 609-603-736
05.08.2011 Виктор
Максим, если отправляет на два ящика, а больше двух не хочет, то скорее всего это ограничения сервера.
Наверное хостинг настроен так, два письма разрешает отправить, а больше двух уже считает спамом и блокирует отправку
05.08.2011 Сергей
zed221, во первых, сомневаюсь, что кому-то надо писать вам в аську или на почту ответ на ваше письмо.
На данном сайте действует отличная система подписки RSS на комментарии.
Хотите получать ответы, просто подпишитесь на RSS комментариев и будете получать ответы на ваш вопрос автоматически.
Во вторых, действительно есть такая услуга у мобильных операторов, можно отправить письмо на специальный email и оно придет в виде СМС.
Но сейчас такая услуга по умолчанию чаще всего отключена, чтобы подключить email к своему номеру мобильного скорее всего надо обратиться в техподдержку вашего оператора (в вашем случае в МТС).
После этого уже можно слать почту на свою мобилу.
И в третьих, приведенный вами хостинг является бесплатный и там скорее всего существует очень много ограничений на отправку почты, для предотвращения спама.
06.09.2011 Andrew
супер разработка! НО!
а можно ли добавить МЕТОД, возвращающий TRUE или FALSE в зависимости "прошла ли успешно SMTP авторизация"?
Очень нужно!
Отпишите ПЖЛ на andrei90g@mail.ru
Заранее спасибо
09.09.2011 Дмитрий
а у меня не получается с помощью класса, отправить приложенный файл :(
письмо получаю, ярлык аттача вижу, только файл не присылается, размер аттача всегда около 300 байт... хотя файл посылается в несколько кб.
Делал как в примере $mail->Attach( "777.txt", "lili.txt", "", "attachment" ); все равно файл не шлёт
Команда get дает следующее:
This is a multi-part message in MIME format.
----b1f7f9dfcebd21f56eb6db3feeb022e6
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
30.09.2011 Рубен
Большое спасибо за скрипт.
Но есть два замечания:
1. У меня письма через sendmail в кодировке win-1251 приходят нечитабельные ??????, а через smtp все нормально. Причину так не нашел.
2. У вас часовой пояс стоит +0700, хорошо бы иметь возможность его менять через переменные.
17.10.2011 Ламерозо
Не понимаю людей, косящих под знатоков ...
Админ туточного сайта же дебил!!!
Посмотрите PHP код и сами все поймете...
Лже знаток ....пошел на ***!
17.10.2011 Админ
Уважаемые, в комментариях пишем конкретно, что не нравится, а не просто "админ дебил и пошел на ***".
Никто не просит вас уважать данный сайт и меня, уважайте других, которые возможно прочитают ваш комментарий.
В предыдущем комментарии я удалил мат, но сам комментарий оставил.
Хоть он и не имеет никакой информативности, но пусть остается.