Назад | Перейти на главную страницу

Настройка php mail () для домена

У меня есть около 6 сайтов на моем выделенном сервере (под управлением centos5), и все электронные письма, отправленные с использованием почтовой функции php, отправляются никем@servername.hostname.com, например. «Получено: ни от кого от имени сервера.hostname.com с локального (Exim 4.69)». Есть ли способ изменить это, чтобы показать соответствующий домен?

Из Руководство по PHP для mail():

Примечание. При отправке почты сообщение должно содержать заголовок «От». Это может быть установлено с помощью параметра additional_headers, или значение по умолчанию может быть установлено в php.ini.

Как и большинство настроек php.ini, это можно переопределить в конфигурации vhost на Apache или через .htaccess, или его можно установить в скрипте (необязательно с помощью auto_prepend), а с версии 5.3.0 через .user.ini файлы. Но вместо того, чтобы явно указывать заголовки From, Reply-To и Return-path, проще просто указать получателя при вызове программы sendmail для обработки сообщения.

Предполагая, что exim использует стандартные флаги в командной строке для своего cli sendmail:

в php.ini:

sendmail_path = "/usr/sbin/sendmail -ffrom@example.com -t -i"

В httpd.conf

php_admin_value sendmail_path "/usr/sbin/sendmail -ffrom@example.com -t -i"

В .htaccess.conf

php_value sendmail_path "/usr/sbin/sendmail -ffrom@example.com -t -i"

(обратите внимание, что ваш путь sendmail может отличаться от показанного)

С.

Вы можете использовать скрипт-оболочку, например мой php-secure-sendmail. Он позволяет регистрировать каждое отправленное электронное письмо (виртуальный хост, дата / время, получатель), ограничивать количество отправляемых писем в час / день виртуальным хостом, устанавливать отправителя конверта и многое другое ...

Вы должны использовать опцию -f в почтовая функция php.