Задать вопрос
@Romo4ka_eto_ia
Просто человек

Как правильно отправлять почту через PHP?

Здравствуйте. У меня есть проект на PHP, в данный момент отправка писем там происходит через mailgun, но проблема в том что письма доходят не всем из-за отсутствия шифрования.
Сейчас я создал сервер на mail.ru smtp и протестировал его, всё работает. Могу ли я как-то интегрировать отправку через него? У меня на VDS есть почтовый сервер, но он отправляет письма с домена машины, а хотелось бы через удаленный SMTP сервер. Или может быть есть какие-то библиотеки, которые делают это автоматически.
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
И снова в который раз я поражаюсь той вакханалии безнаказанности, с которой роскомнадзор блокирует интернет для отдельных граждан страны.
Казалось бы - взял теги и заголовок вопроса, PHP ЭЛЕКТРОННАЯ ПОЧТА ПОЧТОВЫЙ СЕРВЕР Как правильно отправлять почту через PHP?
и скопипастил в адресную строку своего браузера - что может быть проще?
Но коварное полицейское государство не дремлет, и вместо результатов поиска показывает только товарища майора, грозно покачивающего пальцем.
Ответ написан
@Flying
Очень странно, что письма, высланные через Mailgun имеют плохую доставляемость. Подобные сервисы как раз, в частности, и используют из-за того, что они нормально реализуют все стандартные средства идентификации отправителей, а также обладают хорошей репутацией с точки зрения spam list'ов и прочих сервисов мониторинга.

Честно говоря, с учётом вопроса, я бы порекомендовал вам как раз оставаться с Mailgun, а не пытаться создать свой SMTP. Логика очень простая - человек, задающий подобный вопрос вряд ли детально понимает как обеспечить хорошую доставляемость писем в собранном вручную SMTP сервере, так что результат явно будет хуже.

Также не очень понятно само описание проблемы. "Из-за отсутствия шифрования" чего? Возможно вы просто что-то неправильно используете или не настроили?

Возвращаясь к вопросу о библиотеках - я бы склонялся в сторону Symfony Mailer. Это "наследник" SWIFTMailer, который в свою очередь, думаю, был самым популярным решением для этой задачи на PHP, всё-таки больше 270 миллионов скачиваний, у PHPMailer в 10 раз меньше.

Понятно, что Symfony Mailer хорошо интегрирован в сам Symfony, но он легко (хотя и менее удобно) используется и отдельно. Из несомненных плюсов данного подхода - возможность подключения различных транспортов (в том числе и того же Mailgun), что позволяет использовать разные методы отсылки писем без необходимости менять код. Также Symfony Mailer интегрируется с Symfony Messenger, который в свою очередь предоставляет mailer'у возможность асинхронной рассылки писем с retry стратегиями, отслеживанием ошибок отсылки и т.п.
Ответ написан
Комментировать
Newto
@Newto
https://github.com/PHPMailer/PHPMailer

Библиотека умеет оправлять почту через удаленный SMTP, вам останется только её подключить и указать реквизиты доступа к вашему почтовому серверу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы