Отправка писем в PHP

Отправка писем в 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


$ сообщение = '



<голова>


Напоминание о запросе на проверку



<тело>


Вот дела, требующие вашего рассмотрения в декабре:


<таблица>



Название обращения Категория Статус Срок выполнения


Вариант 1 Разработка ожидание 20 декабря


Кейс 1 DevOps ожидает рассмотрения 21 декабря




Важно помнить, что для отправки почты в формате 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/)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE