PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Класс для отправки почты с вложениями файлов
armancho7777777 Супермодератор
Отправлено: 03 Ноября, 2012 - 15:58:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




Всем привет!
Часто встречаю на форумах php.su вопросы по отправке почты средствами функции mail,
связанные как с самой отправкой почты, так и с проблемой кодировок.
Представляю класс для отправки почты с вложениями файлов:

Реализация (Отобразить)
Пример использования (Отобразить)
Предопределённые константы (Отобразить)

В случае ошибки будет брошено исключение SendMailException
P.S. Работает корректно так же с кириллицей в названиях файлов.

(Отредактировано автором: 27 Мая, 2015 - 01:14:25)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Ноября, 2012 - 16:03:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




Файл класса -->
Скачать файл: SendMail.php
Скачан раз: 195

(Отредактировано автором: 27 Мая, 2015 - 01:14:48)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Ноября, 2012 - 07:05:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




...

(Отредактировано автором: 24 Августа, 2013 - 07:10:19)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Марта, 2013 - 23:03:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10421
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




armancho7777777 пишет:
в силу использования функций finfo_* требуется PHP версии не ниже 5.3.11, или PECL расширение fileinfo.
Тогда типа хук:
PHP:
скопировать код в буфер обмена
  1. $file = "/p/d/file.jpg";
  2. ...
  3. if (!function_exists("mime_content_type")) {
  4.   $this->finfo = finfo_open(FILEINFO_MIME_TYPE);
  5. }
  6. ...
  7. echo $this->finfo ? finfo_file($this->finfo, $file) : mime_content_type($file);
  8. ...
  9. if ($this->finfo) {
  10.   finfo_close($this->finfo);
  11. }
  12.  
 
 Top
armancho7777777 Супермодератор
Отправлено: 30 Июля, 2013 - 13:19:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




DeepVarvar пишет:
Тогда типа хук:

Добавил.
Аж 2 ))

(Отредактировано автором: 30 Июля, 2013 - 14:43:47)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
armancho7777777 Супермодератор
Отправлено: 11 Августа, 2013 - 09:56:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




Добавил 2 метода:

Описание в комментариях к коду в первом посте.
Стоит лишь уточнить, что "уведомление" имеется ввиду, что адресат получит сообщение с просьбой об уведомлении о прочтении.
А касаемо приоритета письма:
если пометить его как важное (true), то данное письмо будет продублировано в папку "важные" на клиенте адресата.
Сайт же mail.ru пометит его красным восклицательным знаком.

(Отредактировано автором: 11 Августа, 2013 - 15:59:41)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Августа, 2013 - 10:38:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




Добавлен метод content_encoding().
Описание в первом посте.

Метод content_type теперь, как и метод content_encoding, принимает целочисленный аргумент.
Воспользоваться можно предопределёнными константами, описанных выше.

(Добавление)
EuGen пишет:
Пожалуйста, пользуйтесь функционалом правки первоначального сообщения.
А я что сделал ?
Ко всему прочему добавил отдельное собщение, чтобы оно появилось в списке непрочитанных для тех, кто скачивал когда-то и увидел обновления.


Отредактировано администратором: EuGen, 13 Августа, 2013 - 10:41:10
Пожалуйста, пользуйтесь функционалом правки первоначального сообщения.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
nick
Отправлено: 20 Августа, 2013 - 13:03:54
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Радость не нашел кнопку удалить тупой пост

(Отредактировано автором: 20 Августа, 2013 - 13:28:42)

 
 Top
ketovpavel
Отправлено: 15 Ноября, 2014 - 12:16:33
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Я понимаю что этот топик устарел уже но всё же, обращаюсь к автору!
Я новичок в php подскажите пожалуйста, как вывести массив в php?
Буду очень признателен Вам
PHP:
скопировать код в буфер обмена
  1.  
  2. // Получаем E-mail-ы пользователей кто подписан на обновления  
  3.     $sql_subs_comment_id = mysql_query("SELECT * FROM subs_comment"); // Вытаскиваем страницу продукта и автора
  4.     while($ref = mysql_fetch_array($sql_subs_comment_id)){
  5.       $cont_id = trim($ref['cont_id']);
  6.       $auth_id = trim($ref['auth_id']);
  7.      
  8.     // Получаем массив из авторов
  9.       $sql_comm_email = mysql_query("SELECT email FROM users WHERE id = $auth_id AND $cont_id = $product");
  10.       $mass_comm_email = array();
  11.       while ($arr_comm_email = mysql_fetch_assoc($sql_comm_email)){
  12.      
  13.       // Выводим для теста массив на экран # Всё прекрасно выводиться
  14.         echo $mass_comm_email[] = $arr_comm_email['email']."
  15. ";
  16.  
  17.       }
  18.     }
  19.  
  20.   // Подключаем класс для отправки почты
  21.     require_once ('Send_mail.php');
  22.    
  23.   // Отправляем письма подписчикам
  24.     Send_mail::from('robot@site.ru', 'Site.ru')
  25.    
  26.     // Вот сюда надо получить значение массива в таком вот виде
  27.       ->to($toUsers = array(
  28.         array('user@mail.ru', 'Василий'),
  29.             array('user2@mail.ru', 'Андрей')
  30.       ))
  31.     ////////////////////////////////////////////
  32.    
  33.     // ПРОБОВАЛ ТАК: # Но ни чего не подставляется
  34.     //  ->to($mass_comm_email[] = $arr_comm_email['email'])
  35.    
  36.       ->subject('Новый комментарий на сайте Site.ru')
  37.       ->message('Это письмо отправлено автоматически так как Вы подписаны на обновления комментариев
  38. Отписаться: url')
  39.       ->charset('utf-8')
  40.       ->time_limit(30)
  41.       ->content_type(Send_mail::CONTENT_TYPE_HTML)
  42.       ->content_encoding(Send_mail::CONTENT_ENCODING_QUOTED_PRINTTABLE)
  43.       ->send();
  44.  
  45.   // END Отправки письма подписчикам
  46.  
 
 Top
armancho7777777 Супермодератор
Отправлено: 15 Ноября, 2014 - 18:06:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




ketovpavel пишет:
как вывести массив в php?

Вы издеваетесь ?
Вы больше не нашли, где задать этот вопрос ?


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
GoDr
Отправлено: 26 Мая, 2015 - 21:46:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 439
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




armancho7777777, мне понравился класс Улыбка маленький вопрос..
Хочу заменить в своём движке работу с почтой и заметил этот достаточно интересны и приятный на вид класс.
Собственно, под какой лицензией распространяешь? Может и глупый малость вопрос, но буду вставлять в движок и хотелось бы соблюсти авторские права Хорошо
(Добавление)
.
кстати, обновлений больше не было? Подмигивание


-----
Система управления веб-содержимым Lotos CMS
 
 Top
armancho7777777 Супермодератор
Отправлено: 27 Мая, 2015 - 00:30:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4634
Дата рег-ции: Февр. 2011  
Откуда: Иркутск, Россия


Помог: 212 раз(а)




1. Да пользуйтесь на здоровье.
2. Нет, не обновлял ничего.
(Добавление)
Переименовал только )
Send_mail -> SendMail
(Добавление)
Сейчас только подправил вывод ошибок.
Теперь будет в случае ошибки брошено исключение SendMailException.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
GoDr
Отправлено: 27 Мая, 2015 - 09:35:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 439
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




ок Подмигивание спасибо


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB