Помощь Joomla



Отправка Электронного Письма с Помощью Php

Отправка письма средствами PHP  Сентябрь 2, 2016 – 07:26
PHP и MySQL для веб-разработки

Мы проделали часть работы. Мы можем с помощью сценария получить данные, которые вводит пользователь в форме. Но пока они видны только самому пользователю. Нам нужно дополнить сценарий таким образом, чтобы данные отсылались нам на почту (или сохранялись в базе данных, чтобы их читать на сайте).

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

Адрес электронной почты отправителя - в форме у нас есть поле , в котором пользователь должен ввести свой адрес.

Адрес электронной почты получателя - это ваш электронный адрес, уж его вы знаете.

Тема письма - можем придумать сами. Проявите фантазию.

Само письмо - в принципе мы можем использовать тот же текст, который выводился в сценарии report.php. Только его нужно отформатировать немного, чтобы получить нужную строку. Ведь, как вы помните, в сценарии мы выводили текст в отдельных строках при помощи команды echo с использованием тега
для красивого вывода на html-странице.

Вспоминаем код:

echo 'Спасибо за заполнение формы.
'; echo 'Кота похитили ' . $when . '
'; echo 'Похитители: ' . $description . '
'; echo 'Ваш email: ' . $email;

Создадим новую переменную $msg, которая будет содержать текст письма:

$msg = 'Спасибо за заполнение формы.'. 'Кота похитили ' . $when . 'Похитители: ' . $description . 'Ваш email: ' . $email;

Мы создали достаточно длинную строку, соединив отдельные части с помощью оператора конкатенации (точки). Если вывести текст, содержащий в новой переменной через команду echo $msg; на той странице с сценарием, то получим приблизительно следующее:

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

Так как письмо - это обычный текст, то здесь нельзя использовать HTML-тег
. Для перевода текста на новую строку используется символ новой строки в форме Escape-последовательности '\n'.

Попробуем переделать пример:

$msg = 'Спасибо за заполнение формы.\n'. 'Кота похитили ' . $when . '\n'. 'Похитители: ' . $description . '\n'. 'Ваш email: ' . $email;

Снова выводим результат с помощью echo $msg; и смотрим:

Вместо переноса строк мы видим \n как обычный текст, который затесался между нашими словами для письма. Фигня какая-то.

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

$msg = "Спасибо за заполнение формы.\n". "Кота похитили $when\n". "Похитители: $description\n". "Ваш email: $email"; echo $msg;


Что еще почитать?

Source: developer.alexanderklimov.ru

Похожие публикации:

  1. Доступ к Яндекс Погоде с Помощью Php
  2. Приложение Помощью Php
  3. Взлом Одноклассников с Помощью Javascript
  4. Web Программирование для Начинающих