28.02.2010 (последний раз редактировалось 28.06.2016) сайт: http://webi.ru условия использования: бесплатно
Простой, но функциональный php класс для отправки писем.
Умеет отправлять письма с помощью SMTP, либо через стандартную функцию mail().
Можно прикреплять файлы. Полная поддержка email адресов в национальных доменах (рф и любых других).
29.02.2012 павлик
Скажите а где сама форма, или как её создать не совсем понимаю???
01.03.2012 Петр
Проблему решил заменой почтового аккаунта на gmail.com. Проблема с именами файлов исчезла.
05.03.2012
Опять имена файлов... выяснилось, что при отправке сообщения на mail.ru нужно высылать имена файлов в koi-8r. Но этот способ не подходит для других почтовых ящиков. Единственный более-менее приемлемый способ на данный момент - транслитерация.
06.03.2012 TRAHOMOTO
пару минут гуглинга и нашел такой замечательный класс! Автору большое спасибо!
Только вот:
- все комменты бы в утфе (можно и iconv'нуть но как то не спортивно ;))
- и дескрипторы (private/protected, public) методов и свойств добавили бы красоты коду
15.03.2012 Дмитрий
хорошо бы еще добавить флаг состояния отправка прошла успешно или нет!
18.03.2012 Павел
Ништяк, братиш..!
27.03.2012 Алексей
Спасибо добрый человек
01.04.2012 Александр
Кто знает, как его к Яндексу прицепить? С защищенным соединением. В принципе и по незащищенному порту не работает. На хостинге есть своя почта - там все работает, а вот к сторонним не получается, может что не так делаю?
06.04.2012 Александр
Пытался также к smtp.gmail.com прицепить по разному - не идет... Как прописать там правильно? чтобы работало? Может чего не так делаю?
Это не работающие записи:
$m->smtp_on("smtp.gmail.com","my_login","my_paassw", 25, 10);
$m->smtp_on("ssl://smtp.gmail.com","my_login","my_paassw", 465, 10);
$m->smtp_on("ssl://smtp.yandex.ru","my_login","my_paassw", 465, 10);
$m->smtp_on("smtp.yandex.ru","my_login","my_paassw", 25, 10);
Это работающая:
$m->smtp_on("mail.kubannet.ru","my_login","my_paassw", 25, 10);
Как его прицепить к какому нибудь другому почтовому серверу?
29.04.2012 Виктор
Для соединений по защищенному соединению к gmail пишем так
("ssl://smtp.gmail.com","login","passw", 465)
Это работает 100% у меня лично так сейчас идет отправка с моего сайта через gmail.
Для отправки через яндекс по защищенному соединению должно работать точно так же
("ssl://smtp.yandex.ru","login","passw", 465)
Но я лично через яндекс отправляю обычым способом ("smtp.yandex.ru","my_login","my_paassw")
У кого не работает отправка по защищенному соединению, задавайте вопрос хостингу, возможно на сервере не включена поддержка SSL.
Если у вас и обычным не защищенным способом не идет отправка, опять узнавайте у хостинга, возможно исходящий 25 порт закрыт для борьбы со спамом
05.05.2012 Антошин
Не работает
function Receipt()
Хоть 1, хоть нолик ставишь все равно ни каких изменений (доп.хедеров не появляется в письмах). Как решить?
10.05.2012 Рита
Не подскажите почему если я ставлю smtp yandex то на gmail.com письма не приходят
15.05.2012 Константин, Kaspersky22.ru
Огромное вам спасибо за этот класс. Единственное достойное решение во всем интернете за два дня поиска. Низкий поклон.
18.05.2012 Дмитрий
Да, класс что надо. Спасибо огромное. Небольшое замечание. При отправке письма с вложением сделать признак конца строки
--boundary--
иначе некоторые почтовые клиенты пишут, что декодировании обнаружены ошибки. Это не смертельно, письмо показываеться корректно, но все же.
Конкретно в методе _build_attachement
после $this->fullBody .= implode($sep, $ata);
вписать
$this->fullBody .= "\r\n--$this->boundary--\r\n";
Еще раз спасибо за отличный скрипт.
21.05.2012 Виктор
10.05.2012 Рита, у меня как раз стоит на сайте форма обратной связи, шлет через яндекс на gmail.com, письма приходят.
Может в спам у вас попадают письма?
12.06.2012 Руслан
Пишем, пишем какой автор молодец, и я напишу. Сколько времени благодаря ему с экономил :)
10.07.2012 Иван
Шикарный класс. Взял на вооружение. Большое спасибо =)
26.07.2012 Артем
Спасибо автору. Отличный скрипт, понятно реализован, а главное работоспособный.
11.09.2012 Антон
Не получается отослать письмо с прикрепленном файлом, выдает ошибку-
ошибка прикрепления файла : файл test.docx не существует.
Что не так ?
1. Из формы прилетает переменная с именем file
2. if(!empty($_FILES['file'])) { $file = $_FILES['file']['name']; $file = trim($file); if ($file == '' or empty($file)) unset($file);}
3. $m->Attach( "$file", "", "", "attachment" ) ; // прикрепленный файл