Отправка писем в PHP
30 апреля 2022 г.PHP — один из самых популярных языков веб-разработки и популярный способ создания динамических веб-приложений. В этой статье мы поможем вам безболезненно настроить функцию почты в вашем приложении.
Итак, давайте начнем! Существует два основных способа отправки электронной почты с помощью PHP: встроенная почтовая функция и внешние почтовые пакеты.
Встроенная почтовая функция PHP ()
Встроенная в PHP почтовая функция () очень проста и предоставляет ограниченную функциональность для отправки электронных писем. Вы не сможете добавлять вложения в сообщения электронной почты, а создание красивого HTML-шаблона со встроенными изображениями будет непростой задачей.
Другая сторона монеты PHP mail function () заключается в том, что электронное письмо отправляется с вашего веб-сервера, что может вызвать проблемы с доставкой из-за проблем безопасности, таких как подозрение в спаме и занесение в черный список. Лучший способ решить эту проблему — отправлять сообщения через SMTP-сервер, однако и эта функциональность ограничена. PHP mail() обычно не позволяет использовать внешний SMTP-сервер и не поддерживает аутентификацию SMTP.
Вот что вы можете сделать со встроенной в PHP почтовой функцией():
- создавать простые HTML/текстовые сообщения без вложений и изображений
- отправлять электронные письма через localhost и Xmapp
- включить несколько получателей с параметром «$to».
Он подходит для простых, в основном текстовых уведомлений в вашей локальной среде. Если вам нужно общаться с пользователями вашего приложения, лучше установить внешний почтовый пакет.
Если вы все еще привержены встроенной в PHP почтовой функции() и готовы принять вызов, давайте взглянем на базовый код и его основные параметры.
Синтаксис и параметры
Синтаксис почты PHP довольно прост:
<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>
Он использует следующие параметры:
- «$to» = ваш получатель(и) сообщения. Формат адреса электронной почты может быть user@example.com или User user@example.com. В целом, он должен соответствовать RFC 2822.
- «$subject» = тема вашего сообщения
- «$message» = тело вашего сообщения. Строки должны быть разделены символом CRLF (\r\
). Каждая строка не должна превышать 70 символов.
- «[$headers]» = дополнительные получатели вашего сообщения, которые могут быть включены в CC или BCC.
Обратите внимание, что заголовки необязательны, за исключением заголовка «от»: он должен быть указан, иначе вы получите сообщение об ошибке например, «Предупреждение: mail(): «sendmail_from», не установленный в php.ini, или пользовательское «От:» заголовок отсутствует.
Вы можете использовать дополнительные заголовки, чтобы изменить почтовый адрес «От» и установить адрес «Ответить».
Дополнительные сведения и дополнительные параметры см. в документации по PHP.
Отправка электронной почты в формате HTML с помощью функции PHP mail()
Тело сообщения может быть написано в HTML. Однако, как мы упоминали выше, это должно быть просто. В почтовой функции PHP() часть HTML будет выглядеть так:
```javascript
$ сообщение = '
<голова>
<тело>
Вот дела, требующие вашего рассмотрения в декабре:
<таблица>
Важно помнить, что для отправки почты в формате HTML вам необходимо установить заголовок Content-type:
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; кодировка = iso-8859-1';
Простой протокол передачи (SMTP)
Где указать настройки SMTP? Это справедливый вопрос. Перейдите в папку установки PHP и настройте их в файле «php.ini». Но это будет работать только для решений, подобных localhost или Xmapp, потому что, как мы уже упоминали, почтовая функция PHP не поддерживает аутентификацию SMTP и не позволяет отправлять сообщения через внешние серверы.
Есть и другие, довольно случайные варианты, но мы не будем их здесь продвигать. В качестве альтернативы мы рекомендуем использовать внешние почтовые пакеты PHP для отправки электронной почты через внешний SMTP-сервер.
почтовые пакеты PHP
Как мы уже упоминали, нативная функция PHP mail() имеет ограниченную функциональность, когда речь идет о массовой рассылке. Например, он не предназначен для создания увлекательных шаблонов электронной почты , которые могут повысить эффективность вашей следующей кампании или для отправки большого количества электронных писем.
Но так как PHP по-прежнему является одним из самых популярных языков программирования, у него также есть ресурсы для отправки массовые рассылки. Мы настоятельно рекомендуем несколько плагинов, таких как Pear Mail и Swift Mailer.
Грушевая почта
Pear Mail — это класс, предоставляющий несколько интерфейсов для отправки электронных писем (что указано в их документации).
Вот что вы можете сделать с Pear Mail:
- создавать сложные HTML/текстовые сообщения с вложениями и встроенными изображениями (с класс Mail_Mime)
- отправлять электронные письма с помощью встроенной в PHP функции mail(), программы sendmail или SMTP-сервера.
- отправлять несколько писем из очереди (с классом Mail_Queue ).
Быстрая почтовая программа
Swift Mailer – еще один популярный пакет для отправки электронных писем на PHP. Он многофункциональный, хорошо освещен документацией и довольно прост в использовании.
Вот что вы можете сделать с помощью Swift Mailer:
- создавать сложные HTML/многостраничные шаблоны
- добавлять вложения и вставлять изображения
- отправлять электронные письма через аутентифицированный SMTP, sendmail, Postfix или собственный транспорт
- использовать дополнительные плагины.
Кроме того, Swift Mailer предлагает повышенную безопасность и обрабатывает большие вложения и изображения с низким использованием памяти.
PHPMailer
И, наконец, PHPMailer — классическая и самая популярная библиотека для отправки электронной почты для PHP. Это заслуживает отдельной статьи и руководства. Вы найдете его здесь.
Вот что вы можете сделать с PHPMailer:
- создавать сложные HTML/многостраничные шаблоны
- добавлять вложения и встроенные изображения
- отправлять электронные письма через аутентифицированный SMTP.
PHPMailer защищен от атак с внедрением заголовков и автоматически проверяет электронные письма.
В этой статье мы описали основные принципы отправки электронной почты PHP, синтаксис и параметры. Кроме того, мы рассмотрели основные способы отправки писем с помощью PHP: его встроенную почтовую функцию и самые популярные внешние почтовые пакеты. PHPMailer и Swift Mailer сегодня являются стандартными библиотеками для отправки электронной почты PHP, а PEAR Mail по-прежнему широко используется.
Выберите свой вариант в соответствии с вашими текущими потребностями и предпочтениями и заранее проверьте свои электронные письма. Для экспериментов с электронной почтой создайте учетную запись на Mailtrap, поддельном SMTP-сервере. Он имитирует настоящий SMTP-сервер и перехватывает вашу тестовую электронную почту в виртуальных почтовых ящиках. Попробуй!
Ознакомьтесь с полной Отправка электронной почты с помощью PHP статьи на Mailtrap.io, чтобы получить более подробную информацию о пакетах электронной почты и примерах!
Также опубликовано [Здесь] (https://mailtrap.io/blog/php-email-sending/)
Оригинал