Как отправить электронное письмо с определенного IP-адреса? - PullRequest
3 голосов
/ 29 ноября 2010

Я запускаю VPS с cPanel / CentOS, и я хочу динамически выбрать IP-адрес для отправки электронной почты прямо из кода php. (Я открыт для любых изнурительных путей)

Есть ли способ сделать это? Я был бы очень признателен за некоторые ясные идеи, так как я не так хорош в exim и прочем.

P.S. У меня уже есть доступные IP-адреса в WHM.

Спасибо

Ответы [ 5 ]

5 голосов
/ 01 декабря 2010

Этого можно добиться, используя sendmail и передавая параметры, чтобы определить используемый файл конфигурации.Внутри файла конфигурации вы можете использовать опции Masquerading And Relaying вместе с CLIENT_OPTIONS (`Addr = aaa.bbb.ccc.ddd ') для отправки через определенный IP. mail используйте additional_parameters, чтобы указать используемый файл конфигурации sendmail, и в этом файле конфигурации используйте описанные выше параметры для его настройки.

1 голос
/ 01 декабря 2010

Вот мысль. Если вам нужно отправить письмо с определенного IP-адреса, которым вы управляете, но если стимул для этой почты исходит не от этого IP-адреса, а от какого-либо веб-интерфейса или чего-либо еще, вы можете:

Добавьте данные почты в таблицу на БД с желаемым IP-адресом в качестве поля.

Настройка крон для запуска php-скрипта на каждом ящике с этими IP-адресами.

Выполните синтаксический анализ таблицы с помощью этого сценария, чтобы найти любую почту, которая должна прийти с этого IP-адреса.

Отправьте письмо.

1 голос
/ 29 ноября 2010

PHP не имеет никакого контроля над SMTP-сервером, который отправляет почту.Вы можете привязать SMTP-серверы (sendmail, postfix, exim и т. Д.) К определенным интерфейсам, но это не имеет ничего общего с PHP.Вовлеченность PHP в процесс отправки электронной почты состоит в том, чтобы просто генерировать почту и затем передавать ее на SMTP-сервер для фактической доставки.

0 голосов
/ 20 июня 2011

ClientPortOptions и DaemonPortOptions являются особыми случаями, поскольку могут быть определены несколько клиентов / демонов.Это можно сделать с помощью

CLIENT_OPTIONS(`field1=value1,field2=value2,...')
DAEMON_OPTIONS(`field1=value1,field2=value2,...')

. Обратите внимание, что допускается несколько команд CLIENT_OPTIONS () (и, следовательно, несколько настроек ClientPortOptions), чтобы задать настройки для каждого семейства протоколов (например, одну для Family = inet и одну дляСемья = inet6).Ограничение, налагаемое на одну семью, влияет только на исходящие соединения с этой конкретной семьей.

Источник: http://www.sendmail.com/sm/open_source/docs/configuration_readme/

0 голосов
/ 03 декабря 2010

У меня есть учетная запись посредника на виртуальном хосте, и все мои домены, например, находятся под одним и тем же IP-номером, тогда, какой бы домен я ни использовал для отправки электронной почты, он будет отправлен под тем же IP-номером, я думаю, контролируется спецификацией SMTP, вы можете настроить SMTP для отправки электронной почты на другой сервер, где, конечно, у вас есть учетная запись.

Также создайте таблицу, чтобы контролировать, какой сервер вы хотите использовать для доставки вашей электронной почты.

...