A configuração do Exim4 não funciona com a tubulação

1

Eu estou tentando configurar o exim4 no servidor, para que ele possa receber e-mail para alguns sub-domínios, e eu quero canalizar isso para um script PHP. Eu quero que todas as mensagens recebidas sejam processadas através do meu script personalizado (PHP).

Eu postei alguns dos meus detalhes de configuração abaixo. Eu sou relativamente novo em configurar isso, então me desculpe se estou totalmente desligado.

Eu tentei o seguinte comando e ele não pareceu fazer nada. Não consegui ver nenhuma mensagem nova em /var/mail e o script PHP não parece ter sido atingido.

echo "This is a test." | mail -s Testing [email protected]

Aqui está o roteador personalizado, em exim4.conf :

cmd_router:
  driver = accept
  domains = +local_domains
  transport = cmd_transport
  no_verify

Aqui está o transporte, em exim4.conf :

cmd_transport:
  debug_print = "T: using cmd_transport"
  driver = pipe
  command = /dir/to/php_mailer.php
  delivery_date_add
  envelope_to_add

Veja o arquivo update-exim4.conf.conf :

dc_eximconfig_configtype='internet'
dc_other_hostnames='QAnetwork ; sub1.domain.net ; sub2.domain.net ; localhost'
dc_local_interfaces='127.0.0.1 ; 127.0.1.1 ; 123.123.123.123(server's external ip)'
dc_readhost='QAnetwork ; sub1.domain.net ; sub2.domain.net'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

* Atualização *

Eu tenho monitorado o exim4 mainlog depois de executar o comando echo mail e obter o seguinte:

2014-07-03 14:39:45 1X2lv7-0004mg-9Q <= root@ETC_MAILNAME U=root P=local S=488
2014-07-03 14:39:45 1X2lv7-0004mg-9Q ** [email protected]: Unrouteable address
2014-07-03 14:39:45 1X2lv7-0004mk-Br Error while reading message with no usable sender address (R=1X2lv7-0004mg-9Q): at least one malformed recipient address: root@ETC_MAILNAME - malformed address: _MAILNAME may not follow root@ETC
2014-07-03 14:39:45 1X2lv7-0004mg-9Q Process failed (1) when writing error message to root@ETC_MAILNAME (frozen)

Não tenho certeza do que fazer com esse erro. Fiz algumas investigações sobre o erro "endereço não rotativo", mas não consegui fazê-lo funcionar.

Alguma idéia?

    
por xil3 03.07.2014 / 01:37

1 resposta

1

Você não deu muitos detalhes em sua pergunta, então vou fornecer uma lista de coisas gerais para analisar.

1) Um problema comum é que o script php não é legível e / ou executável pelo usuário exim. Teste definindo o script php para o modo 755 e reenvie.

2) Certifique-se de que o caminho bang no script esteja correto. Normalmente, isso será #! / Usr / bin / php Você deve ser capaz de executá-lo a partir da linha de comando, como se estivesse sendo chamado a partir do exim:

cat temp.eml | /dir/to/php_mailer.php

3) Ou se você está testando isso chamando-o de php /dir/to/php_mailer.php , então você precisa configurar seu transporte para chamar o binário php diretamente também. Use o caminho completo para o binário php.

4) Poucas variáveis de ambiente são definidas porque o comando não é executado sob um shell (como bash ou sh). Em vez disso, o script php é executado diretamente pelo exim no transporte.

5) Em geral, os documentos para o transporte de tubos são muito bons, por isso, certifique-se de que você leu todo o caminho e que você entende exatamente o que as opções que você está usando. Você tem uma aplicação direta do transporte de tubos, e você não está fazendo nada super complicado com isso. Transporte de tubulação

EDITAR: Depois de olhar para a sua mensagem de log acima, o problema não parece ser o seu transporte ou o seu script php. O problema é que o processo que envia o email para o seu Exim está dizendo que o remetente é root @ ETC_MAILNAME em vez de root em algum nome de domínio válido. Você precisa primeiro consertar o que está enviando o email para o Exim. Alternativamente, também pode haver algo errado com sua configuração do Exim, pois espera-se que o Exim converta ETC_MAILNAME no conteúdo do arquivo / etc / mailname (operação padrão para um sistema Exim4 baseado em Debian).

    
por 03.07.2014 / 15:09