<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Класс для отправки E-mail на PHP

Класс для отправки E-mail на PHP

Отправка e-mail происходит практически на каждом сайте. Будь то форма обратной связи, подтверждение регистрации или восстановление пароля - везде может использоваться отправка e-mail. И очень важно, чтобы все параметры отправки хранились в одном месте, чтобы Вам их не пришлось настраивать перед каждой отправкой очередного письма. Поэтому я создал небольшой класс для отправки e-mail на PHP. Его можно и дальше увеличивать, добавляя новый необходимый Вам функционал.

Сразу привожу код класса:

<?php
class Mail {

  private $from;
  private $from_name = "";
  private $type = "text/html";
  private $encoding = "utf-8";
  private $notify = false;

  /* Конструктор принимающий обратный e-mail адрес */
  public function __construct($from) {
    $this->from = $from;
  }

  /* Изменение обратного e-mail адреса */
  public function setFrom($from) {
    $this->from = $from;
  }

  /* Изменение имени в обратном адресе */
  public function setFromName($from_name) {
    $this->from_name = $from_name;
  }

  /* Изменение типа содержимого письма */
  public function setType($type) {
    $this->type = $type;
  }

  /* Нужно ли запрашивать подтверждение письма */
  public function setNotify($notify) {
    $this->notify = $notify;
  }

  /* Изменение кодировки письма */
  public function setEncoding($encoding) {
    $this->encoding = $encoding;
  }

  /* Метод отправки письма */
  public function send($to, $subject, $message) {
    $from = "=?utf-8?B?".base64_encode($this->from_name)."?="." <".$this->from.">"; // Кодируем обратный адрес (во избежание проблем с кодировкой)
    $headers = "From: ".$from."\r\nReply-To: ".$from."\r\nContent-type: ".$this->type."; charset=".$this->encoding."\r\n"; // Устанавливаем необходимые заголовки письма
    if ($this->notify) $headers .= "Disposition-Notification-To: ".$this->from."\r\n"; // Добавляем запрос подтверждения получения письма, если требуется
    $subject = "=?utf-8?B?".base64_encode($subject)."?="; // Кодируем тему (во избежание проблем с кодировкой)
    return mail($to, $subject, $message, $headers); // Отправляем письмо и возвращаем результат
  }

}
?>

Теперь привожу пример использование этого класса:

<?php
  $mail = new Mail("no-reply@mysite.ru"); // Создаём экземпляр класса
  $mail->setFromName("Иван Иванов"); // Устанавливаем имя в обратном адресе
  if ($mail->send("abc@mail.ru", "Тестирование", "Тестирование<br /><b>письма<b>")) echo "Письмо отправлено";
  else echo "Письмо не отправлено";
?>

Надеюсь, смысл всего это Вам предельно ясен. Теперь не надо думать ни над кодировкой, ни над правильными заголовками. Вы просто используете класс для отправки e-mail на PHP. А если потребуется что-то добавить или изменить, то Вам достаточно будет подправить только сам класс и больше ничего.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (9):

Avery Avery 13.11.2013 15:20:17

Где написанно /* Изменение обратныго e-mail адреса */, у вас ы вместо о в слове обратного.

Ответить

Admin Admin 13.11.2013 21:26:57

Спасибо, исправил!

Ответить

lion337 lion337 16.11.2013 18:38:29

Михаил, спасибо нужная вещь, пригодится.

Ответить

lev_100rus lev_100rus 17.11.2013 18:26:37

А как прикрепить картинки?

Ответить

alexandrdante alexandrdante 17.11.2013 18:43:34

VLAD, создаёте новое поле. например так <input name="attachimage" type="file" size="28"> Тип,как видите, file Потом пишете для него обработчик. Выглядит примерно так: // если был файл, то прикрепляем его к письму if(isset($_FILES['attachfile'])) { if($_FILES['attachfile']['error'] == 0){ $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']); } } // если было изображение, то прикрепляем его в виде картинки к телу письма. if(isset($_FILES['attachimage'])) { if($_FILES['attachimage']['error'] == 0){ if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type'])) die ($mail->ErrorInfo); $mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) '; } } $mail->Body = $mess; Реализовано с использованием class.phpmailer

Ответить

lev_100rus lev_100rus 19.11.2013 02:51:10

Спасибо

Ответить

malina95 malina95 22.11.2013 23:36:23

А как настроить функцию mail в php? Сервер собирал сам, функция mail отключена. Пишет ошибку: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in D:\WebServer\domains\volokna.loc\www\Application\App\OrderPage.php on line 63

Ответить

alexandrdante alexandrdante 22.11.2013 23:54:09

Ну вы можете включить её в настройках PHP либо использовать sendmail но на локалке он работать не будет.

Ответить

hiner hiner 12.02.2016 12:35:31

Расскажите пожалуйста о нестандартном методе отправки с сайта на е-мэйл mailto:

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.