Exim on Centos - Configurando o gmail smtp

3

Eu quero configurar o Exim para enviar os e-mails por meio do meu Gmail (na verdade, meus domínios do Google Apps).

Eu adicionei o roteador, o transporte e o autenticador. Especificamente:

gmail_route:
  driver = manualroute
  transport = gmail_relay
  route_list = * smtp.gmail.com

gmail_relay:
  driver = smtp
  port = 587
  hosts_require_auth = $host_address
  hosts_require_tls = $host_address

gmail_login:
  driver = plaintext
  public_name = LOGIN
  hide client_send = :[email protected]:mypassword

Eu consegui configurar isso para o Exim no Debian, mas não consigo entender isso no Centos.

Quando tento enviar ao monitorar os registros, ele me diz "nenhum endereço IP encontrado ..." e, em seguida, "Erro de SMTP do servidor de correio remoto ...". Também diz "Autenticação necessária".

Aqui tem mais detalhes: finja que estou enviando para [email protected]

[email protected] R=gmail_route T=gmail_relay: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1492: 

host gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d]: 

530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 k41sm12066343een.19 - gsmtp

Há algo que eu possa tentar consertar isso? Estou planejando usá-lo principalmente para enviar e-mails de alerta para mim (fail2ban, logwatch etc). E a configuração padrão do Exim parece funcionar, mas eu preferiria usar meu e-mail gapps como [email protected] - Por um lado, os e-mails foram enviados para spam antes de eu treinar minha conta de e-mail para colocá-los na caixa de entrada ...

Obrigado,

    
por Jay 28.02.2014 / 17:21

3 respostas

1

Eu usei a seguinte configuração

ROUTER

send_via_gmail:
   driver = manualroute
   domains = ! +local_domains
   transport = gmail_smtp
   route_list = * smtp.gmail.com

TRANSPORTE

gmail_smtp:
   driver = smtp
   port = 587
   hosts_require_auth = $host_address
   hosts_require_tls = $host_address

AUTENTICADOR

gmail_login:
   driver = plaintext
   public_name = LOGIN
   client_send = : [email protected] : 7654321

Algum teste simples

# swaks -s 127.0.0.1 --to [email protected] --from [email protected]
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
<-  220 mail.example.net, [127.0.0.1]
 -> EHLO mail.example.net
<-  250-mail.example.net Hello localhost [127.0.0.1]
<-  250-SIZE 52428800
<-  250-PIPELINING
<-  250-STARTTLS
<-  250 HELP
 -> MAIL FROM:<[email protected]>
<-  250 OK
 -> RCPT TO:<[email protected]>
<-  250 Accepted
 -> DATA
<-  354 Enter message, ending with "." on a line by itself
 -> Date: Wed, 05 Mar 2014 10:22:55 -0500
 -> To: [email protected]
 -> From: [email protected]
 -> Subject: test Wed, 05 Mar 2014 10:22:55 -0500
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 ->
 -> This is a test mailing
 ->
 -> .
<-  250 OK id=1WLDep-0004ED-Kb
 -> QUIT
<-  221 mail.example.net closing connection
=== Connection closed with remote host.

Verifique o arquivo maillog

# cat /var/log/exim/main.log | grep 1WLDep-0004ED-Kb
2014-03-05 10:22:55 1WLDep-0004ED-Kb <= [email protected] H=localhost (mail.example.net) [127.0.0.1] P=esmtp S=479
2014-03-05 10:22:55 1WLDep-0004ED-Kb gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d] Network is unreachable
2014-03-05 10:23:00 1WLDep-0004ED-Kb => [email protected] R=send_via_gmail T=gmail_smtp H=gmail-smtp-msa.l.google.com [173.194.70.108] X=UNKNOWN:ECDHE-RSA-AES128-GCM-SHA256:128
2014-03-05 10:23:00 1WLDep-0004ED-Kb Completed

Você pode executar o exim no modo de depuração

# echo -e "helo localhost\nmail from:<[email protected]>\nrcpt to:<[email protected]>\nDATA\nHello world\n.\nquit" | exim -bhc 127.0.0.1 -d+all

Depois disso, você recebe muitos dados. Adicione a saída à pergunta

    
por 05.03.2014 / 16:32
1

Você tentou isso?

Usando o GMail como smarthost:

Nota: O seguinte deve ser colocado nas seções apropriadas do arquivo de configuração, por exemplo, depois de iniciar os autenticadores.

Adicione um roteador antes ou em vez do roteador dnslookup:

gmail_route:   driver = manualroute   transport = gmail_relay   route_list = * smtp.gmail.com

Adicione um transporte:

gmail_relay:   driver = smtp   porta = 587   hosts_require_auth = $ host_address   hosts_require_tls = $ host_address

Adicione um autenticador (substituindo [email protected] e mypassword pelos detalhes da sua conta):

gmail_login:   driver = texto sem formatação   public_name = LOGIN   ocultar client_send =: [email protected]: mypassword

$ host_address é usado para hosts_require_auth e hosts_require_tls em vez de smtp.gmail.com para evitar erros ocasionais de 530 5.5.1 Authentication Required. Isso é causado pela mudança de endereços IP em consultas DNS para smtp.gmail.com. $ host_address expandirá para o endereço IP particular que foi resolvido pelo roteador gmail_route. Para maior segurança, use uma senha por aplicativo. Isso funciona também com as contas do Google Apps.

FONTE: link

    
por 06.03.2014 / 18:54
1

Você precisa alterar suas opções hosts_require_auth e hosts_require_tls para o seguinte:

  hosts_require_auth = <; $host_address
  hosts_require_tls = <; $host_address

O problema ocorrerá ao usar o IPv6 para enviar. Ao enviar com o IPv6, $host_address será um endereço IPv6 e, portanto, conterá caracteres de dois pontos ( : ). Colon é normalmente usado como um separador de lista no Exim, portanto, a correspondência de endereço falha e o Exim não se autentica.

Prefixar as listas com <; altera o caractere separador de lista para ponto-e-vírgula e evita o problema com endereços IPv6.

    
por 26.04.2015 / 19:49