Задать вопрос
Vextor-ltd
@Vextor-ltd
Webdeveloper

Как при отправке письма c помощью mail() указать отправителя?

Когда я на удаленном сервере отправляю письмо скриптом с помощью функции mail(), то в заголовке указываю:

$headers = 'From: info@mysite.ru' . "\r\n" .
'Content-type: text/plain; charset=UTF-8' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

Однако когда письмо приходит, то в качестве отправителя указано не info@mysite.ru, а mylogin@hostru04.myhoster.org

Общение с саппортом не привело ни к каким результатам.

Как это пофиксить?
  • Вопрос задан
  • 501 просмотр
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@hey_there
"mylogin@hostru04.myhoster.org" - это адрес на конверте письма, т.н. "envelope from". По умолчанию, при использовании функции mail() этот адрес формируется почтовым агентом сервера (чаще всего это "sendmail") из имени пользователя ("mylogin"), от которого запущен процесс веб-сервера, обслуживающего ваш сайт, и хостнейма сервера ("hostru04.myhoster.org").

Вы можете (если это явно не запрещено вашим хостингом) принудительно указать адрес для "envelope from", воспользовавшись параметром "additional_params" функции mail(). Найти описание параметра и пример задания адреса на конверте можно в офф.документации: https://www.php.net/manual/ru/function.mail.php

Важно: в "envelope from" нужно указывать домен, от которого разрешена отправка писем на вашем сервере, иначе письма будут отклоняться. Подробности рассказывать не буду, но дам ориентир: https://ru.wikipedia.org/wiki/Sender_Policy_Framework
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽