Postfix enviando e-mails com atraso

2

Estou executando o Ubuntu 16.04 no Amazon Lightsail. Acabei de configurar o Postfix para enviar e-mails.

  • Se eu enviar um email após algumas horas, o email é recebido instantaneamente.

  • Se eu enviar vários e-mails em um, os e-mails serão atrasados por cerca de 10 a 30 minutos.

Perguntas:

  1. Como posso corrigir o atraso para que os e-mails sejam enviados instantaneamente?
  2. Como posso ter certeza de que todos os e-mails enviados aos usuários (root & ubuntu) por aplicativos locais serão enviados para um e-mail externo com o mesmo domínio?

Minha configuração:

/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.x.x.x
search ec2.internal

/ etc / hosts

127.0.0.1       localhost
127.0.1.1       webserver.DOMAIN-NAME.com webserver
3x.x.x.x        webserver.DOMAIN-NAME.com webserver #3.x.x.x is the IP that is mentioned in domain DNS

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

/ etc / hostname

webserver

/ etc / aliases

postmaster:    root
root:          [email protected]

/etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = webserver.DOMAIN-NAME.com
mydomain = DOMAIN-NAME.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
#mydestination = $myhostname, DOMAIN-NAME.com, webserver.DOMAIN-NAME.com, localhost.DOMAIN-NAME.com, localhost
mydestination =
#relayhost =
relayhost = $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
#inet_interfaces = all
inet_interfaces = loopback-only
#inet_protocols = all
inet_protocols = ipv4

/var/log/mail.log

May  1 02:17:15 webserver postfix/smtp[6105]: 0287CC775F: to=<[email protected]>, relay=alt1.aspmx.l.google.com[64.233.190.27]:25, delay=531, delays=465/0.01/64/1.9, dsn=2.0.0, status=sent (250 2.0.0 OK 1493605035 h2si13051738qte.100 - gsmtp)
May  1 02:17:15 webserver postfix/qmgr[6102]: 0287CC775F: removed
May  1 02:17:40 webserver postfix/smtp[6107]: connect to alt1.aspmx.l.google.com[64.233.190.27]:25: Connection timed out
May  1 02:17:40 webserver postfix/smtp[6108]: connect to alt1.aspmx.l.google.com[64.233.190.27]:25: Connection timed out
May  1 02:18:10 webserver postfix/smtp[6108]: connect to aspmx2.googlemail.com[64.233.190.27]:25: Connection timed out
May  1 02:18:10 webserver postfix/smtp[6107]: connect to aspmx3.googlemail.com[209.85.203.26]:25: Connection timed out
May  1 02:18:40 webserver postfix/smtp[6108]: connect to aspmx3.googlemail.com[209.85.203.26]:25: Connection timed out
May  1 02:18:40 webserver postfix/smtp[6107]: connect to aspmx2.googlemail.com[64.233.190.27]:25: Connection timed out
May  1 02:18:40 webserver postfix/smtp[6108]: CBE50C77C6: to=<[email protected]>, relay=none, delay=7845, delays=7695/0.02/150/0, dsn=4.4.1, status=deferred (connect to aspmx3.googlemail.com[209.85.203.26]:25: Connection timed out)
May  1 02:18:40 webserver postfix/smtp[6107]: 2266DC775D: to=<[email protected]>, relay=none, delay=174, delays=24/0.01/150/0, dsn=4.4.1, status=deferred (connect to aspmx2.googlemail.com[64.233.190.27]:25: Connection timed out)
May  1 02:20:02 webserver postfix/scache[6110]: statistics: start interval May  1 02:16:41
May  1 02:20:02 webserver postfix/scache[6110]: statistics: domain lookup hits=0 miss=1 success=0%
May  1 02:20:02 webserver postfix/scache[6110]: statistics: address lookup hits=0 miss=2 success=0%
May  1 02:20:02 webserver postfix/scache[6110]: statistics: max simultaneous domains=1 addresses=1 connection=1
May  1 02:26:10 webserver postfix/qmgr[6102]: 2266DC775D: from=<[email protected]>, size=425, nrcpt=1 (queue active)
May  1 02:26:10 webserver postfix/smtp[6138]: 2266DC775D: to=<[email protected]>, relay=aspmx.l.google.com[209.85.201.26]:25, delay=625, delays=624/0.01/0.09/0.18, dsn=2.0.0, status=sent (250 2.0.0 OK 1493605570 p15si12740899qta.122 - gsmtp)
May  1 02:26:10 webserver postfix/qmgr[6102]: 2266DC775D: removed
    
por Waqas Tariq 03.05.2017 / 16:53

1 resposta

1

O Amazon Lightsail é uma solução VPS de nuvem de baixo custo e baixo custo para desenvolvedores de aplicativos da web. Tudo na documentação do Lightsail está relacionado à escolha e configuração de servidores da Web e plataformas CMS. Não é claramente indicado, mas de outra forma aparente que o Lightsail não é um servidor de e-mail. Até mesmo o nome do seu servidor é webserver !

Um aplicativo da web pode enviar um e-mail de vez em quando. Portanto, a porta SMTP 25 não está completamente bloqueada, mas tem limitações. Sua configuração do Postfix é válida para um servidor SMTP autônomo, mas o mail.log mostra o que está acontecendo: depois que você atinge a limitação, as conexões SMTP são expiradas e o email recebe deferred , adiado para uma tentativa posterior. O RFC 3463 baseou o código de status do SMTP dsn=4.4.1 diz o mesmo:

4.4.1 The recipient’s server is not responding

This is an error emanating from your server indicating that the recipient’s server is not responding. Your server will automatically try again a number of times – how many depends on how your server has been configured.

Você mencionou em um comentário que isso só acontece com o Postfix no Ubuntu, mas não com o Sendmail no Amazon Linux. Eu não estou tão familiarizado com o Amazon Linux e o SES da Amazon, mas eu acho que o Amazon Linux Sendmail pode ter o Amazon SES pré-configurado como um retransmissão. É possível integrar o Amazon SES com o Postfix também.

Como você tem relayhost = $mydomain , provavelmente está tentando retransmitir todos os e-mails para um servidor de e-mail externo do seu domínio, como deveria ser. No entanto, a limitação na porta 25 não tem exceção para o seu MTA externo. Portanto, você deve usar o agente de envio de mensagens (port 587 ) em vez .

  1. Você precisa ter o MSA configurado no seu servidor de e-mail. Se também for Postfix, você deve ter a seção /etc/postfix/master.cf começando com submission uncommented:

    submission inet n       -       -       -       -       smtpd
      -o syslog_name=postfix/submission
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o milter_macro_daemon_name=ORIGINATING
    
  2. Configure seu Lightsail relayhost para usar a porta de envio e a autenticação, main.cf :

    relayhost = $mydomain:587
    # Alternative example without DNS MX lookup:
    # relayhost = [mail.example.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_use_tls = yes
    smtp_tls_security_level = encrypt
    smtp_tls_note_starttls_offer = yes
    
  3. O /etc/postfix/sasl_passwd é um Berkeley DB ( hash: ) para as informações de nome de usuário e senha a serem usado para autenticar com o servidor de gateway de correio. Exemplos:

    # destination                   credentials
    [mail.example.com]              username:password
    # Alternative form:
    # [mail.example.com]:submission username:password
    

Para informações mais detalhadas, consulte o Postfix SASL Howto .

    
por 04.05.2017 / 08:33