Php send message script

Руководство по отправке электронных писем в PHP

Отправка сообщений электронной почты очень распространенная функция у сайтов и веб-приложений. Например, вы можете отправить приветственное сообщение по электронной почте, когда пользователь создает учетную запись на вашем веб-сайте или получить отзывы или комментарии через контактную форму на веб-сайте.

Вы можете использовать встроенную в PHP-функцию mail() для динамического создания и отправки сообщений электронной почты одному или нескольким получателям из вашего PHP-приложения либо в текстовой форме, либо в формате HTML. Базовый синтаксис этой функции может быть задан следующим образом:

mail(to, subject, message, headers, parameters)

В следующей таблице приведены параметры этой функции.

Параметр Описание
Обязательно — следующие параметры обязательны
to Электронный адрес получателя.
subject Тема отправляемого электронного письма. Этот параметр, т.е. строка темы не может содержать символ новой строки ( \n ).
message Определяет сообщение для отправки. Каждую строку следует разделять символом перевода строки-LF ( \n ). Строки не должны превышать 70 символов.
Опционально — следующие параметры являются необязательными
headers Обычно это используется для добавления дополнительных заголовков, таких как «От», «Копия», «Скрытая копия». Дополнительные заголовки следует разделять символом возврата каретки и символа перевода строки — CRLF. ( \r\n ).
parameters Используется для передачи дополнительных параметров.

Отправка электронных писем с обычным текстом

Самый простой способ отправить электронное письмо с помощью PHP — отправить текстовое письмо. В приведенном ниже примере мы сначала объявляем переменные — адрес электронной почты получателя, строку темы и тело сообщения — затем мы передаем эти переменные функции mail() для отправки электронного письма.

Отправка электронных писем в формате HTML

Когда вы отправляете текстовое сообщение с помощью PHP, все содержимое будет рассматриваться как простой текст. Мы собираемся улучшить этот вывод и превратить электронное письмо в электронное письмо в формате HTML.

Чтобы отправить электронное письмо в формате HTML, процесс будет таким же. Однако на этот раз нам нужно предоставить дополнительные заголовки, а также сообщение в формате HTML.

'; $message .= '

Hi Jane!

'; $message .= '

Will you marry me?

'; $message .= ''; // Отправляем письмо if(mail($to, $subject, $message, $headers)) < echo 'Your mail has been sent successfully.'; >else < echo 'Unable to send email. Please try again.'; >?>

PHP-функция mail() является частью ядра PHP, но вам необходимо настроить почтовый сервер на своем компьютере, чтобы она работала. Как правило на хостинге уже все работает по умолчанию, если нет — обращайтесь в службу поддержки.

В следующих двух главах (Обработка форм в PHP и Проверка форм в PHP) вы узнаете, как реализовать на своем веб-сайте интерактивную контактную форму, чтобы получать комментарии и отзывы пользователей по электронной почте с помощью этой PHP-функции.

beget banner 480x320 skillbox banner 480x320 kwork banner 480x320

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 4 / 5. Количество оценок: 4

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Руководство по загрузке файлов на сервер в PHP

В этом руководстве мы узнаем, как загружать файлы на удаленный сервер с помощью простой HTML-формы и PHP. Вы можете загружать файлы любого типа, например изображения, видео, ZIP-файлы, документы Microsoft Office, PDF-файлы, а также исполняемые файлы и множество других типов файлов. Шаг 1. Создание HTML-формы для загрузки файла В следующем примере будет создана простая HTML-форма, которую…

Руководство по GET и POST запросам в PHP

Веб-браузер связывается с сервером, как правило, с помощью одного из двух HTTP-методов (протокола передачи гипертекста) — GET и POST. Оба метода передают информацию по-разному и имеют разные преимущества и недостатки, как описано ниже. PHP-метод GET В методе GET данные отправляются в виде параметров URL, которые обычно представляют собой строки пар имени и значения, разделенные амперсандами…

Список сообщений об ошибках в PHP

Обычно, когда движок PHP сталкивается с проблемой, препятствующей правильной работе скрипта, он генерирует сообщение об ошибке. Существует шестнадцать различных уровней ошибок, и каждый уровень представлен целым числом и связанной с ним константой. Вот список уровней ошибок: Название Значение Описание E_ERROR 1 Неустранимая ошибка времени выполнения от которой невозможно избавиться. Выполнение скрипта немедленно прекращается E_WARNING 2…

Разработка сайтов для бизнеса

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

Источник

Отправка SMS при помощи PHP

В наше время SMS широко применяются в веб-технологиях. Их используют для того, чтобы сообщить клиентам о свежих новостях, событиях и продуктах. Именно поэтому растёт рост разработчиков, которые интересуются данным инструментом. В этом уроке мы рассмотрим фундаментальные основы отправки текстовых сообщений при помощи PHP.

Вступление

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

  • Текстовое сообщение сжимается веб-приложением, которое находится на HTTP сервере и после этого отправляется через Интернет (облачко) как email сообщение;
  • Short Message Service Gateway (SMS Gateway) получает сообщение и конвертирует его из email сообщения в SMS сообщение;
  • Впоследствии Short Message Service Center (SMSC), который по сути является роутером для мобильных устройств принимает сообщение;
  • В конце концов, сообщение приходит к получателю по беспроводной сети;

Большинство беспроводных сетей имеют в наличии инструмент, который преобразовывает email сообщения в SMS. Для разработчиков это является бесплатным, а для конечных получателей не всегда, т.к. им может прийти счёт за не сетевое сообщение.

Email в SMS

Для того, чтобы превратить email сообщение в SMS, вам понадобятся 2 вещи:

  • Номер телефона или ID телефонного устройства на которое вы будете отправлять сообщение;
  • Домен беспроводной сети (их можно найти тут)

Оно может выглядеть приблизительно так: phoneNumber@domainName.com

phoneNumber это номер телефона на который будет отправлен SMS. domainName.com — адрес SMS Gateway (системы, через которую будет отослан ваш смс);

Для того, чтобы отправить SMS мистеру Example, вам необходимо в графе получателя в вашем почтовом клиенте написать 3855550168@vtext.com и отправить письмо. Оно будет доставлено на номер +1 (385) 555-0168 через беспроводную сеть Verizon.

К примеру, я пошлю сообщение самому себе через Gmail:

Когда я получу сообщение оно будет выглядеть следующим образом:

Функция mail()

Давайте двигаться дальше. Для отправки SMS сообщений мы можем использовать всеми известную функцию mail(), которая имеет следующую сигнатуру:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Тут вы можете узнать о ней больше.

  • $to это получатель текстового сообщения. Валидные данные:
    • user@example.com
    • user1@example.com, user2@example.com
    • User
    • User1 , User2
    mail( '3855550168@vtext.com', '', 'Testing' );

    Тестируем

    Давайте же проведём тест и убедимся, что через функцию mail() можно отправлять SMS сообщения. Используем следующий код:

    Сообщение, которое пришло на мой мобильный телефон выглядит так:

    Как вы видите, сообщение пришло через систему Gmail. Это произошло из-за того, что я выставил соответствующие настройки для отправки сообщений с локальной машины.

    Добавляем Юзабилити

    Теперь я хочу предложить вам создать небольшую форму для отправки SMS с сайта. Она имеет следующую структуру:

    Стиль

    Давайте немного её оформим:

    body < margin: 0; padding: 3em 0; color: #fff; background: #0080d2; font-family: Georgia, Times New Roman, serif; >#container < width: 600px; background: #fff; color: #555; border: 3px solid #ccc; -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; border-top: 3px solid #ddd; padding: 1em 2em; margin: 0 auto; -webkit-box-shadow: 3px 7px 5px #000; -moz-box-shadow: 3px 7px 5px #000; -ms-box-shadow: 3px 7px 5px #000; box-shadow: 3px 7px 5px #000; >ul < list-style: none; padding: 0; >ul > li < padding: 0.12em 1em >label < display: block; float: left; width: 130px; >input, textarea

    Пишем скрипт

    Это сама сложная часть данного урока. Прошу внимания:

    • В первую очередь скрипт проверяет была ли отправлена информация;
    • Если да, то он проверяет наличие phoneNumber, carrier и smsMessage. Это полезно когда на странице больше чем одна форма;
    • Если phoneNumber, carrier, smsMessage доступны, а phoneNumber и carrier не пусты, то мы можем отправлять сообщение;
    • В сообщении не должны быть строки, превышающие 70 символов. Для разбиения сообщения на строки мы можем использовать функцию wordwrap;
    • phoneNumber и carrier конкатенируются для того, чтобы сформировать адрес получателя;
    • Если данные не прошли валидацию, то скрипт выдаст сообщение “Заполните все поля”;
    • В конце концов функция mail вернёт нам истину или ложь. Результат мы помещаем в переменную $result для дальнейшей проверки.

    Запомните, что mail() возвращает результат отправки сообщения и всё. Дошло письмо или нет — остаётся неизвестным.

    Финальный код

    Проблемы, которые могли у вас возникнуть

    Ошибки на локальном хосте

    Для того, чтобы пользоваться функцией mail у вас должен быть настроен локальный почтовый сервер. Если он у вас есть, то отправка сообщения произойдёт успешно. Если нет, то вы получите сообщение типа этого:

    Warning: mail() [function.mail]: Failed to connect to mailserver at «localhost» port 25, verify your «SMTP» and «smtp_port» setting in php.ini or use ini_set() in C:\wamp\www\sms\mail-test.php

    … для того, чтобы всё заработало, вам необходимо поставить mail сервер, но это не входит в рамки данного урока. Если у вас на локальной машине установлен XAMPP http://www.apachefriends.org/en/xampp.html, то вы с лёгкостью исправите ситуацию. Если же у вас WAMP, MAMP, LAMP, SAMP или OAMP, попробуйте установить Mercury Mail

    PHPMailer

    Для того, чтобы не возиться с локальным почтовым сервером, я предлагаю воспользоваться PHPMailer-ом http://phpmailer.worxware.com/. Ниже я приведу пример подключения PHPMailer-а к Gmail SMTP серверу, через который вы сможете отправлять сообщения.

    Данный код надо просто заинклудить в ваш скрипт:

    require 'class.phpmailer.php'; // Создаём объект класса $mail = new PHPMailer(); // Настройка SMTP $mail->IsSMTP(); // Настройка SMTP подключения $mail->SMTPDebug = 2; // Вывод отладочной информации $mail->SMTPAuth = true; // Подключение к SMTP требует авторизацию $mail->SMTPSecure = "tls"; // Подключаемся, используя TLS $mail->Host = "smtp.gmail.com"; $mail->Port = 587; $mail->Encoding = '7bit'; // Авторизация $mail->Username = "email.address@gmail.com"; // Логин $mail->Password = "password"; // Пароль // Проверка $mail->Subject = "Testing"; // Тема $mail->Body = "Testing"; // Сообщение // Отправка $mail->AddAddress( "##########@vtext.com" ); // Получатель var_dump( $mail->send() ); // Отправить!

    Данный код должен вывести что-то подобное:

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

    Вывод

    Конечно, существуют и другие техники отправки текстовых сообщений. Этот способ подойдёт тем, кто будет отправлять не больше 1000 SMS в месяц. Альтернативы данной системы:

Оцените статью