
Я хочу доставлять почту по нескольким адресатам, то есть в скрипт php и в почтовый ящик пользователя. Я использую Exim для доставки почты. Я изменил разделы Routers и Transport файла конфигурации exim, как показано ниже. Я разработал собственный транспорт с именем send_to_site. Я могу отправлять заголовки почты в скрипт php, но не могу отправлять почту в почтовый ящик пользователя. Вот мой настроенный транспорт:
######МАРШРУТИЗАТОРЫcatchall_mail:
driver = accept
domains = my.server.com
transport = send_to_site
#####ТРАНСПОРТ
send_to_site:
driver = pipe
command = /home/bin/curl http://my.server.com/mailTest.php --data-urlencode "mail@-"
user = afterlogic
group = afterlogic
return_path_add
delivery_date_add
envelope_to_add
Где mailTest.php — мой PHP-скрипт.
решение1
Я преодолел эту проблему после долгого времени. В разделе маршрутизаторов написал свой собственный маршрутизатор, который будет доставлять почту на нужный мне скрипт php. В разделе транспорта написал свой собственный транспорт, который будет обеспечивать доставку на нужный скрипт с помощью curl. Просто написал следующие конфигурации в своем /etc/exim.cnf
файле:
############ROUTERS
runscript:
driver = accept
transport = run_script
unseen
no_expn
no_verify
############TRANSPORT
run_script:
debug_print = "T: run_script for $local_part@$domain"
driver = pipe
command = /home/bin/curl http://my.domain.com/mailTest.php --data-urlencode $original_local_part@$original_domain
Где mailTest.php был моим предназначенным скриптом.
решение2
Вам нужно создать два маршрутизатора, где первый должен иметь unseen
глагол. Первый маршрутизатор должен передавать сообщение в скрипт, а второй должен выполнять обычную доставку в почтовый ящик пользователя.
Извините за краткий ответ, пишу с телефона.