<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

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

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

Ответить

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