Функция mail () - это встроенная функция PHP, которая используется для отправки электронной почты с локального хоста. Но для отправки электронной почты с помощью этой функции требуются некоторые настройки. Вам понадобится реальная информация о почтовом сервере для настройки конфигурации. Вы можете использовать информацию о почтовом сервере вашего активного хостинг-сервера или любую информацию о бесплатном почтовом сервере. Учетная запись Gmail и информация о SMTP-сервере Gmail используются в этом руководстве для отправки электронной почты с помощью функции mail ().
Настройка конфигурации
Для настройки конфигурации потребуется изменить два файла: php.ini файл, а для настройки почтового сервера требуется еще один файл. Следуйте инструкциям ниже, чтобы настроить конфигурацию. В PHP доступно множество пакетов для отправки электронной почты. мсмтп - это клиент почтового сервера PHP, который используется в этом руководстве для отправки электронной почты с помощью функции PHP mail ().
Шаги:
Выполните следующую команду, чтобы установить мсмтп пакет в Ubuntu для настройки почтового сервера:
$ sudo apt-get install msmtpСоздайте файл конфигурации с именем / etc / msmtprc с помощью следующей команды:
$ sudo nano / etc / msmtprcДобавьте в файл следующий контент. Добавьте действующий адрес электронной почты для Пользователь и действующий пароль для пароль который будет использоваться для отправки электронного письма. Установите адрес электронной почты отправителя для форма значение.
значения по умолчаниюtls на
tls_starttls на
tls_trust_file / etc / ssl / certs / ca-сертификаты.crt
аккаунт по умолчанию
хост smtp.Gmail.ком
порт 587
авторизация на
имя пользователя @ gmail.ком
пароль user_password
от sender_email_address
Выполните следующие команды, чтобы установить владельца и разрешение для / etc / msmtprc файл:
$ sudo chown fahmida / etc / msmtprc$ sudo chmod 0600 / etc / msmtprc
Открой php.ini file и измените следующее содержимое со следующими значениями:
SMTP = smtp.Gmail.комsmtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"
Синтаксис:
bool mail (строка $ to, строка $ subject, строка $ message [, смешанная $ additional_headers [, строка $ additional_parameters]])Эта функция может принимать четыре аргумента. Первый аргумент принимает адрес электронной почты получателя. Второй аргумент берет тему письма. Третий аргумент принимает тело письма. Последний аргумент является необязательным и содержит дополнительную информацию об электронном письме в виде строки или массива.
Отправка электронной почты с помощью функции mail ()
В этом разделе руководства показаны различные примеры отправки электронной почты с помощью функции PHP mail ().
Пример 1. Отправьте простое текстовое электронное письмо
В этом примере показано, как можно отправить простое текстовое электронное письмо с помощью функции mail (). Создайте файл PHP со следующим скриптом.
Вы должны установить действующий адрес электронной почты для $ в переменная, чтобы получить вывод следующего скрипта. В качестве тела сообщения устанавливается простой текст.
// Устанавливаем адрес электронной почты получателя$ to = "[электронная почта защищена]";
// Устанавливаем тему письма
$ subject = "Это тестовое письмо";
// Устанавливаем тело письма
$ message = "Тестирует тело письма";
// Устанавливаем информацию заголовка
$ headers = "От: [электронная почта защищена] \ r \ n";
$ заголовки .= "Ответить: [электронная почта защищена] \ r \ n";
// Отправляем электронное письмо с помощью функции сообщения mail ()
если (почта ($ кому, $ тема, $ сообщение, $ заголовки))
echo "Электронное письмо успешно отправлено.\ r \ n ";
еще
echo "Электронное письмо не отправлено.
";
?>
Следующий вывод появится после запуска скрипта с веб-сервера, если функция mail () работает правильно.
Следующий вывод появится, если вы отметите почтовый ящик адреса электронной почты, который был установлен в качестве адреса электронной почты получателя.
Пример 2. Отправьте электронное письмо в формате HTML
В этом примере показано, как отправить электронное письмо в формате HTML с помощью функции mail (). Создайте файл PHP со следующим скриптом.
$ сообщение переменная инициализируется содержимым HTML, которое будет отправлено в теле письма. Это упоминается в $ header переменная, что содержимое электронного письма - HTML.
// Устанавливаем адрес электронной почты получателя$ to = "[электронная почта защищена]";
// Устанавливаем тему письма
$ subject = 'Регистрация прошла успешно';
// Устанавливаем тело письма
$ message = '
Ваша регистрация успешно завершена.
имя пользователя = fahmida20
пароль = aswQ34ghqw
';
// Установить возврат каретки
$ nl = "\ г \ п";
// Устанавливаем заголовок Content-type
$ headers = 'Версия MIME: 1.0 '.$ nl;
$ заголовки .= 'Content-type: text / html; charset = iso-8859-1 '.$ nl;
// Устанавливаем дополнительную информацию заголовков
$ заголовки .= 'Кому: Мехраб Хоссейн'.$ nl;
заголовки $ .= 'От: Администратор'.$ nl;
заголовки $ .= 'Копия: [электронная почта защищена]'.$ nl;
// Отправляем электронное письмо с помощью функции сообщения mail ()
if (mail ($ to, $ subject, $ message, $ headers))
echo "Электронное письмо успешно отправлено.\ r \ n ";
еще
echo "Электронное письмо не отправлено. \ r \ n ";
?>
Следующий вывод появится после запуска скрипта с веб-сервера, если функция mail () работает правильно.
Следующий вывод появится, если вы отметите входящие сообщения адреса электронной почты, который был установлен как адрес электронной почты получателя.
Пример 3. Отправьте электронное письмо с вложением
В этом примере показано, как можно отправить электронное письмо, вложив текстовый файл. Создайте текстовый файл со следующим скриптом.
Содержимое текстового файла считывается и кодируется перед прикреплением, а функция md5 () используется в сценарии для генерации случайного числа для смешанного содержимого. Вся необходимая информация добавлена в заголовки $ а также $ сообщение переменные перед отправкой электронного письма.
// Устанавливаем адрес электронной почты получателя$ to = "[электронная почта защищена]";
// Устанавливаем тему письма
$ subject = "Вложение файла";
// Установить возврат каретки
$ nl = "\ г \ п";
// Устанавливаем случайный хеш, который будет использоваться для смешанного контента
$ separator = md5 (время ());
// Читаем содержимое прикрепленного файла
$ filename = 'мой файл.текст';
$ content = file_get_contents ($ filename);
$ content = chunk_split (base64_encode ($ content));
// Устанавливаем сообщение электронной почты с информацией о вложении
$ message = "-" . разделитель $ . $ nl;
$ сообщение .= "Content-Type: text / plain; charset =" iso-8859-1 "" . $ nl;
$ сообщение .= "Кодировка передачи содержимого: 8 бит" . $ nl;
$ сообщение .= "К письму прикреплен текстовый файл." . $ nl;
$ сообщение .знак равно . разделитель $ . $ nl;
$ сообщение .= "Content-Type: application / octet-stream; name =" " . $ filename . "" " . $ nl;
$ сообщение .= "Кодировка передачи содержимого: base64" . $ nl;
$ сообщение .= "Content-Disposition: вложение" . $ nl;
$ сообщение .= $ content . $ nl;
$ сообщение .знак равно . разделитель $ . «-»;
// Устанавливаем заголовок Content-type
$ headers = 'Версия MIME: 1.0 '.$ nl;
заголовки $ .= "От: [адрес электронной почты защищен]".$ nl;
заголовки $ .= "Ответить: [адрес электронной почты защищен]".$ nl;
заголовки $ .= "Content-Type: multipart / mixed; Border =" " . разделитель $ . "" " .$ nl;
// Отправляем электронное письмо с помощью функции сообщения mail ()
if (mail ($ to, $ subject, $ message, $ headers))
echo "Электронное письмо с вложением успешно отправлено.\ r \ n ";
еще
echo "Электронное письмо не отправлено. \ r \ n ";
?>
Следующий вывод появится после запуска скрипта с веб-сервера, если функция mail () работает правильно.
Следующий вывод появится, если вы отметите почтовый ящик адреса электронной почты, который был установлен в качестве адреса электронной почты получателя.
Заключение
В PHP существует множество способов отправки электронных писем. Функция PHP mail () не работает должным образом в Ubuntu после настройки конфигурации. В этом руководстве показаны необходимые конфигурации и способ отправки электронных писем с помощью функции PHP mail ().