Postfix + Dovecot слишком долго отправляет электронные письма

Я получаю 504 ошибки при попытке отправить электронные письма на моем сайте Rails 4.2 с использованием dovecot и postfix. У меня также есть асинхронный почтовый сервер, настроенный с использованием Redis и Sidekiq, когда я отправляю асинхронные электронные письма, на их отправку уходит от 5 до 30 минут.

Мой почтовый сервер работает в том же ящике, что и мой сайт,

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"
mailbox_size_limit = 0
mydestination = localhost
myhostname = mysite.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
relayhost =
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_sasl_authenticated
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/nginx/ssl/ssl-bundle.crt
smtpd_tls_key_file = /etc/nginx/ssl/server.key
smtpd_use_tls = yes
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = dovecot
0
задан 5 August 2016 в 19:05
1 ответ

Моя проблема оказалась двойной:

  1. Мне нужно было добавить allow_mynetworks к smtpd_recipient_restrictions

    My postfix / main.cf требовал, чтобы у меня было

     mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0pting/104 [:: 1] / 128
    smtpd_recipient_restrictions = permission_sasl_authenticated, allowed_mynetworks
     


  1. Поскольку у меня работают два сервера Sidekiq, мне нужно было использовать отдельные очереди.

    Я запускаю промежуточный и рабочий сервер на одном компьютере, оказалось, что электронные письма часто попадали в неправильную очередь, что приводило к исключения, и электронные письма были впоследствии повторно поставлены в очередь и еще больше отложены. Чтобы обойти это, мне нужно было разделить очереди, изменив мой config / sidekiq.yml , чтобы он включал:

    : queues:
      - постановка
     

    и отправьте электронное письмо следующим образом:

     UserMailer.delay (queue: Rails.env) .my_email (args)
     

После этого я очистил свои очереди Redis и Sidekiq, так как некоторые плохие электронные письма все еще засоряли систему, и теперь электронные письма, даже с задержкой, отправляются очень быстро.

0
ответ дан 5 December 2019 в 09:42

Теги

Похожие вопросы