Форумы портала PHP.SU » PHP » Пользовательские функции » Класс Send_mail

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

1. armancho7777777 - 03 Ноября, 2012 - 15:58:50 - перейти к сообщению
Всем привет!
Часто встречаю на форумах php.su вопросы по отправке почты средствами функции mail,
связанные как с самой отправкой почты, так и с проблемой кодировок.
Представляю класс для отправки почты с вложениями файлов:

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

В случае ошибки будет брошено исключение SendMailException
P.S. Работает корректно так же с кириллицей в названиях файлов.
2. armancho7777777 - 03 Ноября, 2012 - 16:03:53 - перейти к сообщению
Файл класса -->
3. armancho7777777 - 08 Ноября, 2012 - 07:05:50 - перейти к сообщению
...
4. DeepVarvar - 01 Марта, 2013 - 23:03:42 - перейти к сообщению
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.  
5. armancho7777777 - 30 Июля, 2013 - 13:19:31 - перейти к сообщению
DeepVarvar пишет:
Тогда типа хук:

Добавил.
Аж 2 ))
6. armancho7777777 - 11 Августа, 2013 - 09:56:09 - перейти к сообщению
Добавил 2 метода:

Описание в комментариях к коду в первом посте.
Стоит лишь уточнить, что "уведомление" имеется ввиду, что адресат получит сообщение с просьбой об уведомлении о прочтении.
А касаемо приоритета письма:
если пометить его как важное (true), то данное письмо будет продублировано в папку "важные" на клиенте адресата.
Сайт же mail.ru пометит его красным восклицательным знаком.
7. armancho7777777 - 13 Августа, 2013 - 10:38:34 - перейти к сообщению
Добавлен метод content_encoding().
Описание в первом посте.

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

(Добавление)
EuGen пишет:
Пожалуйста, пользуйтесь функционалом правки первоначального сообщения.
А я что сделал ?
Ко всему прочему добавил отдельное собщение, чтобы оно появилось в списке непрочитанных для тех, кто скачивал когда-то и увидел обновления.
8. nick - 20 Августа, 2013 - 13:03:54 - перейти к сообщению
Радость не нашел кнопку удалить тупой пост
9. ketovpavel - 15 Ноября, 2014 - 12:16:33 - перейти к сообщению
Я понимаю что этот топик устарел уже но всё же, обращаюсь к автору!
Я новичок в 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.  
10. armancho7777777 - 15 Ноября, 2014 - 18:06:01 - перейти к сообщению
ketovpavel пишет:
как вывести массив в php?

Вы издеваетесь ?
Вы больше не нашли, где задать этот вопрос ?
11. GoDr - 26 Мая, 2015 - 21:46:14 - перейти к сообщению
armancho7777777, мне понравился класс Улыбка маленький вопрос..
Хочу заменить в своём движке работу с почтой и заметил этот достаточно интересны и приятный на вид класс.
Собственно, под какой лицензией распространяешь? Может и глупый малость вопрос, но буду вставлять в движок и хотелось бы соблюсти авторские права Хорошо
(Добавление)
.
кстати, обновлений больше не было? Подмигивание
12. armancho7777777 - 27 Мая, 2015 - 00:30:03 - перейти к сообщению
1. Да пользуйтесь на здоровье.
2. Нет, не обновлял ничего.
(Добавление)
Переименовал только )
Send_mail -> SendMail
(Добавление)
Сейчас только подправил вывод ошибок.
Теперь будет в случае ошибки брошено исключение SendMailException.
13. GoDr - 27 Мая, 2015 - 09:35:24 - перейти к сообщению
ок Подмигивание спасибо

 

Powered by ExBB FM 1.0 RC1