<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

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

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

Подписавшись по 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:

Ответить

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