
Quero entregar mensagens para vários destinos, ou seja, para um script php e para a caixa de correio de um usuário. Estou usando o Exim para entregar e-mails. Alterei as seções Roteadores e Transporte do arquivo de configuração exim, conforme mostrado abaixo. Eu projetei um transporte personalizado chamado send_to_site. Consigo enviar cabeçalhos de e-mail para o script php, mas não consigo enviar e-mail para a caixa de correio do usuário. Aqui está meu transporte personalizado:
######ROTEADOREScatchall_mail:
driver = accept
domains = my.server.com
transport = send_to_site
#####TRANSPORTE
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
Onde mailTest.php é meu script php.
Responder1
Superei esse problema depois de muito tempo. Na seção de roteadores escrevi meu próprio roteador personalizado que entregará e-mail para o script php desejado. Na seção de transporte escrevi meu próprio transporte customizado que garantirá a entrega no script desejado usando curl. Acabei de escrever as seguintes configurações em meu /etc/exim.cnf
arquivo:
############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
Onde mailTest.php era meu script destinado.
Responder2
Você tem que criar dois roteadores onde primeiro deveria ter unseen
verbo. Esse primeiro roteador deve canalizar a mensagem para o script, enquanto o segundo deve realizar a entrega normal na caixa de correio do usuário.
Desculpe pela breve resposta, estou postando por telefone.