Como eu configuro o exim4 para enviar e-mails através de um servidor de e-mail smtp protegido por senha?

19

Gostaria que meus cronjobs pudessem enviar e-mails do meu computador doméstico. Meus servidores configuram o exim4 assim:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

No entanto, em casa, meu ISP bloqueia emails enviados diretamente por um firewall. Eu tenho um servidor smtp SSL protegido por senha que eu poderia encaminhar o e-mail através, mas eu não tive sucesso em descobrir como configurar o exim4 para fazer este trabalho. Espero que alguém me dê um exemplo de configuração onde eu possa conectar o nome do host, nome de usuário, senha e "usar ssl" para fazer com que ele envie e-mails através de um único servidor smtp.

    
por Stephen Ostermiller 23.07.2012 / 13:29

3 respostas

25

Eu finalmente encontrei um conjunto detalhado de instruções de Tony Scelfo que realmente funcionam . Parece que você tem que usar a TLS (Transport Layer Security) na porta 587. Eu não obtive o SSL SMTP para funcionar.

Primeiro, execute sudo dpkg-reconfigure exim4-config e use estas opções de configuração:

  • Tipo geral de configuração de e-mail: e-mail enviado pelo smarthost; recebido via SMTP ou fetchmail
  • Nome de e-mail do sistema: < seu nome de host >
  • endereço IP para escutar conexões SMTP de entrada: 127.0.0.1
  • Outros destinos para os quais o e-mail é aceito: < seu nome de host >
  • Máquinas para retransmitir correspondência para:
  • endereço IP ou nome do host do smarthost de saída: mail.example.com::587
  • Ocultar o nome do correio local no correio a enviar?
    • Sim - todos os emails de saída aparecerão da sua conta do Gmail
    • Não - as mensagens enviadas com um cabeçalho de nome de remetente válido manterão o nome do remetente
  • Manter o mínimo de consultas DNS (Discagem sob demanda)? Não
  • Método de entrega para correio local: < escolha o que preferir >
  • Divide o arquivo de configuração em arquivos pequenos? Sim (você precisa editar um dos arquivos a seguir)

Em seguida, execute sudo vi /etc/exim4/passwd.client e adicione as seguintes linhas ao seu host de e-mail e a todos os aliases encontrados (encontrados em nslookup ). Substitua < endereço de email > e < senha > com a conta pela qual você deseja encaminhar o e-mail):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Depois de editar o arquivo passwd.client , execute sudo update-exim4.conf , que integrará suas alterações na sua configuração do Exim4.

Execute sudo /etc/init.d/exim4 restart e certifique-se de que o serviço pare e inicie corretamente. Se o serviço não puder ser reiniciado, algo provavelmente deu errado quando você editou o arquivo passwd.client .

Se o Exim4 for reiniciado, vá em frente e execute sudo tail -f /var/log/exim4/mainlog para assistir aos registros de e-mail. Em uma janela diferente, envie um e-mail do seu sistema e certifique-se de ver um registro com R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16 . O X=TLS significa que o e-mail está sendo enviado com a segurança da camada de transporte, que é o que você deseja.

    
por Stephen Ostermiller 18.04.2013 / 00:16
5

Se o seu ISP requerer autenticação, você deve configurar o dc_smarthost para o hostname e a combinação de portas do servidor de email que seu ISP usa, e dc_eximconfig_configtype para "smarthost" assim:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Em seguida, você pode adicionar suas credenciais a /etc/exim4/passwd.client da seguinte forma:

mail.example.com:username:password

Em seguida, qualquer mensagem enviada por meio do seu servidor exim4 será roteada por meio desse host de correio.

    
por dobey 23.07.2012 / 15:16
4

Isso funciona muito bem para mim. Meu provedor usa a porta 25 e dc_smarthost='myisp.mail.server:25' depois de alterar esses arquivos e emitir comandos:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Depois fiz um teste para enviar um e-mail através da amostra exim4 classic como:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

E estes fluem ok para a caixa de entrada de my-user in my-domain-url .

    
por gsavix 16.09.2012 / 07:47