Функция в php mail: Функция mail PHP – ленивый способ отправки почты
Содержание
PHP Mail
Введение в PHP mail
Функция Mail () позволяет отправлять электронную почту непосредственно из скрипта.
Требования
Для того чтобы почтовые функции были доступны, PHP требует установленной и работающей почтовой системы. Используемая программа определяется параметрами конфигурации в файле PHP. ini.
Установки
Функции mail являются частью ядра PHP. Для использования этих функций не требуется установка.
Конфигурация среды выполнения
Поведение функций Mail зависит от настроек в PHP. ini:
Имя | По умолчанию | Описание | Изменчива |
---|---|---|---|
mail.add_x_header | «0» | Добавить X-PHP-исходный скрипт, который будет включать UID сценария, за которым следует имя файла. Для PHP 5.3.0 и выше | PHP_INI_PERDIR |
mail.log | NULL | Путь к файлу журнала, в котором будут регистрироваться все вызовы mail (). Журнал включает полный путь к сценарию, номер строки, адрес и заголовки. Для PHP 5.3.0 и выше | PHP_INI_PERDIR |
SMTP | «localhost» | Только для Windows: DNS-имя или IP-адрес SMTP-сервера | PHP_INI_ALL |
smtp_port | «25» | Только для Windows: номер порта SMTP. Для PHP 4.3.0 и выше | PHP_INI_ALL |
sendmail_from | NULL | Только для Windows: указывает адрес «from», который будет использоваться при отправке почты из Mail () | PHP_INI_ALL |
sendmail_path | «/usr/sbin/sendmail -t -i» | Указывает, где можно найти программу Sendmail. Эта директива работает также под Windows. Если задано, SMTP, смтп_порт и сендмаил_фром игнорируются | PHP_INI_SYSTEM |
PHP 5 mail функции
Функции | Описание |
---|---|
ezmlm_hash() | Вычисляет хэш-значение, необходимое для езмлм |
mail() | Позволяет отправлять письма непосредственно из скрипта |
Как проверить работу функции mail()? — База знаний WebAsyst
Для проверки работоспособности PHP-функции mail() создайте тестовый PHP-файл (например, testmail.php) следующего содержания:
<?php
$message = '';
if (isset($_POST['email']) && !empty($_POST['email'])){
if (mail($_POST['email'], $_POST['subject'], $_POST['body'], '')){
$message = "Email has been sent to <b>".$_POST['email']."</b>.<br>";
}else{
$message = "Failed sending message to <b>".$_POST['email']."</b>.<br>";
}
}else{
if (isset($_POST['submit'])){
$message = "No email address specified!<br>";
}
}if (!empty($message)){
$message .= "<br><br>n";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
Mail test
</title>
</head>
<body>
<?php echo $message; ?>
<form method="post" action="">
<table>
<tr>
<td>
</td>
<td>
<input name="email" value="<?php if (isset($_POST['email'])
&& !empty($_POST['email'])) echo $_POST['email']; ?>">
</td>
</tr>
<tr>
<td>
subject
</td>
<td>
<input name="subject">
</td>
</tr>
<tr>
<td>
message
</td>
<td>
<textarea name="body"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="send" name="submit">
</td>
</tr>
</table>
</form>
</body>
</html>
Загрузите созданный файл в директорию сервера, доступную по HTTP-протоколу (public_html, www, htdocs или другую в зависимости от конфигурации сервера).
Запустите файл, набрав его адрес (URL) в адресной строке браузера, например: http://domain.ru/testmail.php.
Введите в поля открывшейся страницы адрес электронной почты, тему и текст проверочного сообщения и нажмите на кнопку «send», чтобы отправить сообщение.
В случае успешной отправки на странице появится сообщение вида «Email has been sent to …». В противном случае появится сообщение вида «Failed sending message to…».
Если отправить письмо с помощью такого проверочного файла не удалось, обратитесь к системному администратору с просьбой настроить функцию mail() на вашем сервере.
Совет: ознакомьтесь также со статьей о диагностике отправки почтовых сообщений приложениями WebAsyst.
PHP | Отправка форм. POST-запросы
Отправка форм
Последнее обновление: 15.03.2021
Одним из основных способов передачи данных веб-сайту является обработка форм. Формы представляют специальные элементы разметки HTML, которые содержат
в себе различные элементы ввода — текстовые поля, кнопки и т.д. И с помощью данных форм мы можем ввести некоторые данные и отправить их на сервер. А сервер уже обрабатывает эти данные.
Создание форм состоит из следующих аспектов:
Создание элемента
<form><form>
в разметке HTMLДобавление в этот элемент одно или несколько поле ввода
Установка метода передачи данных. Чаще всего используются методы
GET
илиPOST
Установка адреса, на который будут отправляться введенные данные
POST-запросы
Итак, создадим новую форму. Для этого определим новый файл form.php, в которое поместим следующее содержимое:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <h4>Форма ввода данных</h4> <form action="user.php" method="POST"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Атрибут action="user.php"
элемента form
указывает, что данные формы будет обрабатывать скрипт user.php,
который будет находиться с файлом form.php
в одной папке. А атрибут method="POST"
указывает, что в качестве метода передачи данных будет применяться метод POST.
Теперь определим файл user.php
, который будет иметь следующее содержание:
<?php $name = "не определено"; $age = "не определен"; if(isset($_POST["name"])){ $name = $_POST["name"]; } if(isset($_POST["age"])){ $age = $_POST["age"]; } echo "Имя: $name <br> Возраст: $age"; ?>
Для обработки запросов типа POST в PHP используется встроенная глобальная переменная $_POST.
Она представляет ассоциативный массив данных, переданных с помощью метода POST. Используя ключи, мы можем получить отправленные
значения. Ключами в этом массиве являются значения атрибутов name
у полей ввода формы.
Например, так как атрибут name
поля ввода возраста имеет значение age
(<input type="number" name="age" />
),
то в массиве $_POST
значение этого поля будет представлять ключ «age»: $_POST["age"]
И поскольку возможны ситуации, когда поле ввода будет не установлено, то в этом случае желательно перед обработкой данных проверять
их наличие с помощью функции isset(). И если переменная установлена, то функция isset() возвратит значение true
.
Теперь мы можем обратиться к скрипту form.php и ввести в форму какие-нибудь данные:
И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php:
Необязательно отправлять данные формы другому скрипту, можно данные формы обработать в том же файле формы. Для этого изменим файл form.php
следующим образом:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $name = "не определено"; $age = "не определен"; if(isset($_POST["name"])){ $name = $_POST["name"]; } if(isset($_POST["age"])){ $age = $_POST["age"]; } echo "Имя: $name <br> Возраст: $age"; ?> <h4>Форма ввода данных</h4> <form method="POST"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Поскольку в данном случае мы отправляем данные этому же скрипту — то есть по тому же адресу, то у элемента форма можно не устанавливать
атрибут action
.
Стоит отметить, что в принципе мы можем отправлять формы и запросом GET, в этом случае для получения тех же значений формы
применяется массив $_GET, который был рассмотрен в прошлой теме:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $name = "не определено"; $age = "не определен"; if(isset($_GET["name"])){ $name = $_GET["name"]; } if(isset($_GET["age"])){ $age = $_GET["age"]; } echo "Имя: $name <br> Возраст: $age"; ?> <h4>Форма ввода данных</h4> <form method="GET"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Проверка правильности email на PHP
Проверка правильного формата вводимых данных очень важна в любых информационных системах. В данной статье, мы рассмотрим возможности PHP проверить, корректно ли указан адрес электронной почты (email). Обращу внимание, что речь идет лишь о проверке корректной структуры адреса. Дело в том, что адрес, может либо быть корректным (т.е. валидным), но при этом не существовать. Например, пользователь может просто ошибиться символом при вводе. Поэтому задача данной статьи – отсеять заведомо некорректные значения для email.
Как известно email состоит из двух основных частей. Например, адрес: [email protected].
Здесь, MyEmail – это непосредственный адрес (или логин) пользователя, а myssite.ru – адрес сайта, которому соответствует электронная почта.
Следовательно, проверка адреса на валидность заключается в том, что он должен соответствовать структуре:
логин_пользователя@доменное_имя.доменная_зона
В итоге, задача сводилась к построению регулярного выражения для проверки, соответствует ли проверяемая стока допустимым символам и структуре email. Но, начиная с PHP 5.2, появилась возможность выполнить эту проверку встроенной функцией filter_var(). Пример такой проверки:
$email = ;
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo ;
}else{
echo ;
}
В первый параметр функции указывается строковое значение, которое нужно проверить. Второй параметр – это идентификатор применяемого фильтра (в данном случае для проверки email). Функция filter_var() универсальна и может быть использована для проверки различных значений – числовое значение, логическое или проверка валидности IP-адреса.
Валидация email с использованием регулярного выражения PHP
Если же либо версия PHP не позволяет вам применить описанный выше метод, либо хотите просто действовать по старинке, то можно использовать регулярные выражения:
$email = ;
if (preg_match(, $email)) {
echo ;
}else{
echo ;
}
Если используете подобное регулярное выражение, стоит быть внимательным к возможным адресам. Например, в данный код решит, что введенное значение не email, если доменная зона будет более 5 символов или если адрес будет задан кириллицей. Поэтому, применяя его, учитывайте возможные вводимые значения.
Узнайте о функции PHP Mail: освоение формы электронной почты PHP
Самый простой способ взаимодействия с вашими пользователями — это заставить PHP отправлять электронные письма, используя специальные формы и почтовую функцию PHP. Основная идея заключается в том, что разработчик может создавать специальные формы электронной почты PHP для отправки писем прямо из скрипта.
Используя PHP mail (), вы можете, например, отправлять еженедельные информационные бюллетени или настроить свой почтовый ящик для получения сообщений об ошибках. Таким образом, функция предоставляет не только средства связи, но и настраиваемый журнал ошибок.
Функция почты PHP: основные советы
- Функция почты PHP позволяет отправлять электронные письма напрямую с помощью скрипта PHP.
- Эта функция интегрирована в ядро PHP, но требует, чтобы в вашей системе была установлена работающая система электронной почты (которая должна быть определена в файле php.ini).
Параметры конфигурации среды выполнения
На поведение функции mail () PHP всегда влияют настройки, определенные внутри php.ini .В таблице ниже представлен список этих конфигураций среды выполнения, которые вы можете применить:
Имя | Значение по умолчанию | Описание | Сменный |
---|---|---|---|
mail.add_x_header | "0" | Эта функция используется для добавления X-PHP-Originating-Script, целью которого является включение UID сценария, за которым следует имя файла. Может использоваться в PHP 5.3.0 и новее | PHP_INI_PERDIR |
почта.журнал | NULL | Путь к файлу, который будет включать все предыдущие вызовы почтовой функции PHP. Этот журнал будет включать полный путь к каталогу файла сценария, номер строки, адрес получателя и необходимые заголовки. Может использоваться в PHP 5.3.0 и новее | PHP_INI_PERDIR |
SMTP | "localhost" | Только для Windows: DNS-имя или IP-адрес SMTP-сервера | PHP_INI_ALL |
smtp_port | "25" | Только для Windows: номер порта SMTP.Может использоваться в PHP 4.3.0 и новее | PHP_INI_ALL |
sendmail_from | NULL | Только для Windows: укажите адрес From , который будет использоваться для отправки почты с помощью функции PHP mail () | PHP_INI_ALL |
sendmail_path | "/ usr / sbin / sendmail -t -i" | Укажите расположение программы sendmail. Эта директива также работает в Windows. Игнорирует SMTP, smtp_port и sendmail_from, если установлено. | PHP_INI_SYSTEM |
Функции для отправки электронной почты
В таблице ниже вы можете увидеть функции, которые вы можете использовать, когда хотите, чтобы PHP отправлял электронное письмо:
Функция | Описание |
---|---|
ezmlm_hash () | Вычислить значение хеш-функции, требуемое EZMLM |
почта () | Разрешить отправку писем прямо из скрипта |
PHP mail Функция: сводка
- Используя встроенную функцию
mail ()
, вы можете отправлять электронные письма через свой PHP-скрипт. - Для правильной работы этой функции ваша система должна иметь установленную, работающую и определенную в php.ini почтовую систему.
Как отключить функцию PHP mail () для домена рассылки спама на сервере Plesk для Linux? - Справочный центр Plesk
Plesk для Linux
kb: как сделать
ABT: Группа A
Вопрос
- Как отключить функцию mail () для домена рассылки спама на сервере Plesk?
Ответ
Отключить функцию mail () для подписки через графический интерфейс
Войдите в Plesk
Перейдите к Подписки> пример.com> Настроить> Настройки PHP
Добавить строку
disable_functions = mail
в поле Дополнительные директивы конфигурации :Нажмите ОК , чтобы применить изменения
Предупреждение: Убедитесь, что соответствующая подписка Заблокирована и не синхронизируется с ее планом обслуживания. В противном случае изменения будут перезаписаны значениями, определенными в плане обслуживания.
Предупреждение: Если установлен disable_functions = mail
, но 'mail' не указан как отключенный в Домене > example.com> Настройки PHP> phpinfo () , проверьте, установлены ли на сервере какие-либо дополнительные модули PHP. . Дополнительные модули PHP могут перезаписывать настройки php.ini
для домена.
Если установлен модуль Suhosin PHP, выполните следующие действия:
Подключитесь к серверу через SSH и закомментируйте директиву
disable_functions
в конфиге Suhosin, чтобы не перекрывать те же директивы в доменахphp.ini
.# grep disable_function /etc/php.d/suhosin.ini
; disable_functions =Добавить дополнительную директиву PHP для домена:
CONFIG_TEXT: disable_functions = exec, system, mail
Отключить функцию mail () для подписки через CLI:
Подключиться к серверу по SSH
Выполните следующую команду:
# пример plesk bin subscription_settings -u.com -outgoing_messages_enable_sendmail false
Кроме того, утилита Sendmail может быть полностью отключена, чтобы полностью отключить функцию отправки таких писем:
Полностью отключить утилиту Sendmail
Использование утилиты Sendmail можно отключить на сервере с настройками по адресу:
- Войдите в Plesk GUI> Инструменты и настройки> Настройки почтового сервера> Отключите опцию Разрешить скриптам и пользователям использовать Sendmail
Или на уровне плана обслуживания:
- Войдите в Plesk GUI> Планы обслуживания>
Или на уровне подписки:
- Войдите в Plesk GUI> Подписки> пример.com> Контроль исходящей почты> Подписка> Изменить ограничения> Отключите параметр Разрешить сценариям и пользователям использовать Sendmail
Дополнительная информация
Кроме того, можно заблокировать всю исходящую почту, отправляемую сценариями PHP, такими как PHPMailer, добавив следующее правило iptables (в RHEL / CentOS):
- Подключиться к серверу по SSH
- Сохраните текущие правила iptables в файл:
# iptables-save> / root / pre_iptables_rules
- Добавьте правило, которое блокирует все исходящие пакеты, отправляемые процессами, владельцем которых не является postfix, за исключением локальных подключений из веб-почты:
# iptables -I ВЫХОД -m владелец! --uid-owner postfix -m tcp -p tcp --dport 25! -d 127.0.0.1 -j ОТКАЗАТЬ
- Установите и включите необходимый пакет:
# yum install iptables-services && systemctl enable iptables-services
- Сохраните правила iptables, чтобы изменения были постоянными:
# / sbin / service iptables save
404 - Страница не найдена
Войти
Запомнить меня • Забыли пароль?
Просмотреть корзину (0)
Переключить навигацию
Дом
Хранить
Просмотреть все
-----
Weebly
Виртуальный хостинг
Управляемый VPS
TurnKey
Неуправляемый VPS
Неуправляемый Windows VPS
Зарегистрируйте новый домен
Перенести домены к нам
Состояние сети
Свяжитесь с нами
Счет
Авторизоваться
-----
Забыли пароль?
×
Закрывать
Название
Загрузка...
Загрузка ...
Закрывать
Представлять на рассмотрение
Отправка вложений с помощью PHP Mail ()
Php
if (isset ($ _ POST) &&! Empty ($ _ POST)) {
if (! Empty ($ _ FILES ['attachment'] [' имя '])) {
$ file_name = $ _FILES [' вложение '] [' имя '];
$ temp_name = $ _FILES ['вложение'] ['tmp_name'];
$ file_type = $ _FILES ['вложение'] ['тип'];
$ base = базовое имя ($ имя_файла);
$ extension = substr ($ base, strlen ($ base) -4, strlen ($ base));
// разрешены только эти типы файлов
$ allowed_extensions = array (".doc "," docx "," .pdf "," .zip "," .png ");
// проверяем, разрешен ли этот тип файла
if (in_array ($ extension, $ allowed_extensions)) {
// основные сведения о почте
$ from = $ _POST ['user_mail'];
$ to = "[email protected]";
$ subject = $ _POST ['user_name'];
$ message = $ _POST ['user_message'];
// вещи, которые вам нужны
$ file = $ temp_name;
$ content = chunk_split (base64_encode (file_get_contents ($ file)));
$ uid = md5 (uniqid5 (uniqid5) (time ())); // уникальный идентификатор
// стандартные почтовые заголовки
$ header = "From:".$ от. "\ r \ n";
$ header. = "Reply-To:". $ Replyto. "\ г \ п";
$ header. = "Версия MIME: 1.0 \ r \ n";
// объявляем несколько типов электронной почты (простой текст + attch)
$ header. = "Content-Type: multipart / mixed; Border = \" ". $ Uid." \ "\ R \ n ";
$ header. = "Это сообщение, состоящее из нескольких частей, в формате MIME. \ R \ n";
// часть обычного текста
$ header.= "-". $ uid. "\ r \ n";
$ header. = "Content-type: text / plain; charset = iso-8859-1 \ r \ n";
$ header. = "Content-Transfer-Encoding: 7bit \ r \ n";
$ header. = $ Message. "\ г \ п";
// часть атрибута
$ header. = "-". $ Uid. "\ R \ n";
$ header. = "Content-Type:". $ File_type. "; Name = \" ". $ File_name." \ "\ R \ n";
$ header. = "Content-Transfer-Encoding: base64 \ r \ n";
$ заголовок.= "Content-Disposition: attachment; filename = \" ". $ File_name." \ "\ R \ n";
$ header. = $ Content. "\ R \ n"; // забросил 64 закодированных attch
// отправка почты - сообщение находится не здесь, а в заголовке, состоящем из нескольких частей
if (mail ($ to, $ subject, $ message, $ заголовок)) {
эхо "успех";
} else {
эхо "сбой";
echo error_get_last () ['сообщение'];
}
} else {
echo "тип файла не разрешен"; } // выводить html-файл
} else {
echo "файл не отправлен"; }
}
?>
Как использовать Gmail или Yahoo с почтой PHP () Функция
Что означает красный цвет
Строки, которые пользователь должен ввести или настроить, будут в этом уроке красным!
Остальные в основном должны быть скопированы и вставлены.
О почте PHP ()
Функция PHP mail () использует программу в директиве конфигурации sendmail_path для отправки электронных писем. По умолчанию он настроен как sendmail.
Хотя в большинстве установок Linux предустановлен sendmail, всегда возникает проблема с настройкой записей SPF / PTR, генерацией ключей DKIM и многим другим, чтобы гарантировать, что электронное письмо, отправленное вашим сценарием PHP, не будет помечено как спам. SMTP-клиент под названием MSMTP может использоваться для отправки электронной почты с использованием сторонних SMTP-серверов, это также может использоваться PHP mail () вместо sendmail.
Установка
Для установки MSMTP в Fedora Linux используйте yum :
yum install msmtp
В репозитории
CentOS нет пакета RPM для MSMTP, поэтому нам нужно установить его из источника:
yum install make gcc pkgconfig wget http://sourceforge.net/проекты / msmtp / files / msmtp / 1. tar -xvf msmtp-1.4.31.tar.bz2 компакт-диск msmtp-1.4.31 ./configure делать сделать установку4.31 / msmtp-1.4.31.tar.bz2 / загрузить
Последняя версия - 1.4.31 на момент написания этой статьи, но она может измениться в будущем, поэтому, чтобы получить последнюю версию, посетите эту страницу sourceforge.
В дистрибутиве Ubuntu / Debian используйте apt-get :
apt-get install msmtp
Пользователи Arch Linux:
судо пакман -S msmtp
Настройка MSMTP
Файл конфигурации MSMTP хранится в ~ / .msmtprc для каждого пользователя, а / etc / msmtprc - это
общесистемный файл конфигурации.Откройте файл конфигурации в вашем каталоге.
vi ~ / .msmtprc
Добавьте следующие строки для учетной записи Yahoo:
аккаунт Yahoo tls на tls_starttls выкл. tls_certcheck off авторизация на хост smtp.mail.yahoo.com пользователь user1 с user1@yahoo.com пароль yourYahooPa5sw0rd
Для Gmail используйте следующие настройки:
аккаунт gmail tls на tls_certcheck off авторизация на хост smtp.gmail.ком порт 587 пользователь user1@gmail.com с user1@gmail.com пароль yourgmailPassw0rd
В этом файле также может быть несколько учетных записей, просто убедитесь, что значение «account» уникально для каждого раздела.
Сохраните файл и используйте chmod , чтобы сделать этот файл доступным для чтения только владельцу, поскольку он содержит пароли.
Этот шаг является обязательным, потому что msmtp не будет запускаться, если разрешения больше 600 .
chmod 600 ~ / .msmtprc
Перед реализацией этого в PHP проверьте из командной строки, чтобы убедиться, что он работает правильно.Для этого создайте простой текстовый файл, содержащий простое электронное письмо:
echo -e "От: alice@example.com \ n \ Кому: bob@domain.com \ n \ Тема: Hello World \ n \ \ п \ Это письмо было отправлено с помощью MSMTP через Gmail / Yahoo. ">> sample_email.txt
Теперь отправьте это электронное письмо:
кот sample_email.txt | msmtp --debug -a gmail bob@domain.com
Замените слово «gmail» на «yahoo» или то, что вы ввели для параметра «аккаунт». Вы увидите много сообщений из-за
"--debug" параметр.Это сделано для упрощения поиска и устранения неисправностей, если что-то не работает должным образом.
Если bob@domain.com получает это электронное письмо, значит, все настроено правильно, поэтому скопируйте этот файл в каталог / etc :
cp -p ~ / .msmtprc /etc/.msmtp_php
Измените владельца на имя пользователя, под которым работает веб-сервер. Это может быть « apache », « www-data » или « никто » в зависимости от дистрибутива Linux на вашем VPS и установленного веб-сервера:
chown www-data: www-data / etc /.msmtp_php
Настройка PHP
Откройте файл php.ini , его расположение зависит от установленной ОС и типа PHP (PHP CGI, mod_php, PHP-FPM и т. Д.):
vi /etc/php5/php.ini
Найдите следующую строку:
sendmail_path =
Измените его, добавив путь к команде msmtp:
sendmail_path = "/ usr / bin / msmtp -C /etc/.msmtp_php --logfile /var/log/msmtp.log -a gmail -t"
Создайте файл журнала вручную и измените его владельца на имя пользователя, под которым работает ваш веб-сервер:
сенсорный / var / log / msmtp.бревно chown www-data: www-data /var/log/msmtp.log
Перезагрузите веб-сервер, чтобы изменения вступили в силу:
сервис httpd перезапуск
В Arch Linux это делается с помощью команды systemctl:
перезапуск systemctl httpd
В зависимости от вашей ОС и веб-сервера замените « httpd » на соответствующее имя. Если PHP работает как отдельный процесс (например, PHP-FPM), перезапустите его:
перезапуск службы php5-fpm
Создайте сценарий PHP с помощью простого mail (), чтобы проверить эту настройку:
Php if (mail ("Receiver @ domain.com"," Тема здесь "," Здравствуйте, \ nЭто письмо было отправлено с использованием почтовой функции PHP. ")) распечатать «Электронное письмо успешно отправлено»; еще print "Произошла ошибка"; ?>
Откройте этот файл из веб-браузера.
http://www.example.com/file.php
Если это письмо не было отправлено, вы можете проверить файл журнала msmtp на наличие ошибок.
хвост /var/log/msmtp.log
Общие ошибки
Если электронное письмо не было отправлено при использовании сценария PHP, устраните неполадки следующим образом:
Как отправить электронное сообщение с помощью функции PHP Mail ()?
Одним из наиболее распространенных методов общения в настоящее время является отправка и получение сообщений электронной почты.В отличие от других форм электронного общения, электронные письма очень надежны и принимаются повсеместно - когда вы отправляете кому-то сообщение, вы знаете, что они смогут его прочитать независимо от используемой операционной системы, почтового клиента или почтового провайдера. Благодаря этим огромным преимуществам электронная почта стала предпочтительным способом общения для бесчисленных людей и предприятий по всему миру.
Написание сообщений электронной почты с помощью вашей любимой почтовой программы или веб-приложения вашего почтового провайдера, вероятно, для вас вторая натура.Но знаете ли вы, что вы также можете отправлять сообщения через скрипты со своего хостинга? В этом руководстве мы покажем вам, как отправлять сообщения электронной почты с помощью сценария PHP.
Как я могу проверить, включена ли функция PHP Mail () в моей учетной записи?
Перед тем, как вы попытаетесь отправить сообщение электронной почты с помощью функции PHP mail (), вы должны убедиться, что функция PHP mail () действительно включена на сервере. Вы можете выполнить эту проверку, запустив небольшой тестовый сценарий. Выполните следующие шаги, чтобы создать этот сценарий и выполнить его:
- Откройте раздел "Диспетчер файлов" Панели управления.Если будет предложено, войдите в свою учетную запись.
- Откройте папку с доменным именем .
- Используйте кнопку Create , чтобы создать новый файл. Назовите файл как-то вроде
test.php
. - Скопируйте приведенный ниже код и сохраните файл.
Php
if (function_exists ('mail')) {
echo "Функция PHP mail () включена";
}
еще {
echo "Функция PHP mail () не включена";
}
?>
- Теперь скопируйте путь к сценарию тестирования и запустите его в своем веб-браузере.Путь должен выглядеть примерно так:
.
Если все пойдет хорошо, вы должны увидеть сообщение Функция PHP mail () включена , как показано на снимке экрана ниже:
Тестовый сценарий подтверждает, что функция PHP mail () включена на сервере.
Если есть проблема, вы увидите сообщение PHP mail () не включена . В том маловероятном случае, если это произойдет, вам следует обратиться в круглосуточную службу технической поддержки, чтобы они могли решить любые проблемы с сервером.
Тестовый сценарий показывает, что функция PHP mail () отключена, что, вероятно, связано с неправильной конфигурацией сервера.
Разрешены ли бесплатные учетные записи для отправки сообщений с помощью функции PHP Mail ()?
Если вы пользуетесь нашей услугой бесплатного хостинга, вы можете беспокоиться о том, что эта функция будет вам недоступна. Хорошей новостью является то, что даже бесплатные учетные записи хостинга могут использовать функцию PHP mail (). Есть всего два предостережения, о которых нужно помнить.
Во-первых, чтобы отправить сообщение электронной почты, вам необходимо создать учетную запись электронной почты на вашем хостинге.Эта учетная запись электронной почты будет действовать как отправитель. Учетные записи электронной почты можно создать в разделе «Учетные записи электронной почты» панели управления. Чтобы иметь учетную запись электронной почты, вам необходимо иметь полное доменное имя или получить бесплатное доменное имя .DX.AM из Менеджера домена.
Второе предостережение: чтобы спамеры не злоупотребляли нашим бесплатным сервисом, мы ограничили количество отправляемых сообщений до 31 сообщения за любой 31-дневный период. Вы можете снять это ограничение, перейдя на один из предлагаемых нами пакетов платного хостинга.
Как отправить электронное сообщение с помощью функции PHP Mail ()?
Сообщения электронной почты могут быть отправлены с помощью сценария PHP, запустив его. Запустить сценарий так же просто, как открыть его в веб-браузере, как обычную страницу в Интернете. Мы покажем вам, как создать и запустить ваш первый скрипт, использующий функцию PHP mail ():
.
- Войдите в панель управления хостингом.
- Если у вас еще нет учетной записи электронной почты, создайте ее в разделе «Учетные записи электронной почты» панели управления. Не знаете, как создать учетную запись электронной почты? Ознакомьтесь с нашим руководством о том, как создать учетную запись электронной почты .
- Перейдите в раздел "Диспетчер файлов" Панели управления.
- Дважды щелкните папку домена , чтобы открыть ее.
- Используйте кнопку Create , чтобы создать новый файл. Назовите файл как-то вроде
mail-test.php
. - Скопируйте приведенный ниже код в только что созданный пустой файл .PHP.
Php
$ awardspaceEmail = "ОТ";
$ recipientEmail = "К";
$ from = "От: Форма обратной связи по электронной почте <".$ awardspaceEmail. ">";
$ to = $ recipientEmail;
$ subject = "PHP mail () Test";
$ body = "Это тестовое сообщение, отправленное с помощью почтовой функции PHP!";
if (mail ($ кому, $ subject, $ body, $ from)) {
echo 'Электронное сообщение отправлено!';
} еще {
echo 'Ошибка доставки электронной почты!';
}
?>
- Теперь вам нужно сделать два дополнения к скрипту. В начале сценария вы увидите следующую строку кода:
$ awardspaceEmail = "FROM";
. Вам необходимо удалить текстИЗ
и вместо него ввести адрес электронной почты, который вы создали ранее на шаге 2, используя раздел «Учетные записи электронной почты» панели управления.Точно так же следующая строка:$ recipientEmail = "TO";
. Здесь вам нужно удалить текстTO
и заменить его адресом электронной почты, на который вы хотите получить тестовое сообщение. - После обновления двух полей, упомянутых в предыдущем шаге, сохранит ваши изменения.
- Теперь скопируйте путь к сценарию проверки почты и запустите его в своем веб-браузере. Путь должен выглядеть примерно так:
.
- По завершении загрузки сценария вы должны увидеть сообщение Сообщение электронной почты отправлено! выводится на экран, если сообщение было отправлено успешно.Если возникла проблема, вы увидите ошибку доставки электронной почты ! вместо этого. В случае ошибки вы можете связаться с нашей круглосуточной службой технической поддержки, и они помогут вам в решении любых имеющихся проблем.
- Убедитесь, что ваш сценарий успешно отправил тестовое сообщение, проверив свой почтовый ящик. Вы должны получить тестовое сообщение, похожее на показанное ниже:
Сценарий проверки функции PHP mail () успешно отправил сообщение, и оно прибыло в почтовый ящик получателя.
Существует ли ограничение на количество сообщений, которые я могу отправить с помощью функции PHP Mail ()?
Как упоминалось ранее, план бесплатного хостинга позволяет отправлять до 31 сообщения в течение 31-дневного периода. При переходе на один из наших платных планов виртуального хостинга этот лимит значительно увеличивается. С платным тарифом вы можете отправлять до 1000 сообщений в день. Если вам нужно отправить еще больше сообщений, наш полу-выделенный хостинг позволяет отправлять до 2000 сообщений в день. И последнее, но не менее важное: получение пакета виртуального частного сервера (VPS) позволит вам отправлять неограниченное количество сообщений.VPS ограничен только своим оборудованием и вычислительной мощностью в отношении количества сообщений, которые он может отправить.
Предупреждение: AwardSpace придерживается политики абсолютной нетерпимости, когда дело доходит до отправки нежелательных сообщений электронной почты (СПАМ). Если вы используете наши почтовые серверы для такой деятельности, вы рискуете навсегда заблокировать вашу учетную запись хостинга без возможности получить возмещение.
Как создать контактную форму для моего веб-сайта?
Теперь, когда вы можете отправлять сообщения с помощью сценариев PHP, вы можете задуматься о внедрении полноценной контактной формы на свой веб-сайт.На самом деле сделать это на удивление легко. Мы рассмотрим весь процесс в нашем руководстве о том, как создать рабочую контактную форму.
Заключение
Возможность отправлять сообщения электронной почты через ваш веб-сайт улучшает впечатления ваших посетителей, когда они посещают ваш сайт. Внедрение контактной формы, отправка сообщений с подтверждением заказа и отправка по электронной почте ссылки для сброса пароля участнику вашего сайта, который потерял свой пароль, - все это может сделать ваш сайт более профессиональным и привлекательным.