Почему Postfix не передает только имя пользователя в Dovecot через lmtp и как это сделать на FreeBSD?

Похоже, это соответствующая часть журнала:

java.net.BindException: Address already in use

Наиболее вероятная причина:

  1. sqoop2 уже запущен (но находится в основном в мертвом состоянии, не отвечает и не делает ничего полезного, но все еще работает. т.е. скорее завис, чем разбился).

Проверьте с помощью ps aux | grep sqoop. Убейте его, если он запущен, затем перезапустите.

Или:

  1. запущено что-то другое, использующее тот же порт. Попробуйте запустить netstat -tupan | grep :port (где "port" - номер порта, к которому sqoop2 хочет привязаться). Убейте его и запустите sqoop2.
1
08.03.2018, 22:45
1 ответ

Таким образом, по существу, было две ошибки.

Во-первых, карты виртуальных _почтовых ящиков _не подходят для моего сценария. Вместо этого я должен использовать виртуальные карты _alias _.

Во-вторых, нам нужно предоставить адреса электронной почты как слева, так и справа от виртуальных почтовых ящиков, потому что в противном случае Postfix попытается доставить сообщение на $myhostname, он просто не сможет предоставить простое имя пользователя через LMTP.Итак, в случае

info@mydomain1.com someuser@mydomain2.com
ceo@mydomain1.com someuser@mydomain2.com
sales@mydomain1.com anotheruser

Первые две строки будут работать нормально, ретранслируя почту, предназначенную как для info@mydomain1.com, так и для ceo@mydomain1.com, пользователю с именем «someuser@mydomain2.com» в Dovecot. Единственная разница в том, что теперь при аутентификации нам придется входить в систему, используя «someuser@mydomain2.com», а не просто имя пользователя без «@…».

Однако третья строка будет пересылать почту для sales@mydomain1.com другому пользователю@primary.domain.com, а запись в почтовый ящик будет обрабатываться Postfix, LMTP в этом случае вызываться не будет.

Наконец, лучше использовать ретранслятор _вместо виртуального _, потому что в терминах Postfix ретрансляция почты в службу LMTP Dovecot, даже если она работает на той же машине, аналогична ретрансляции в другом месте, поэтому используется ретранслятор _. ] options "разумнее".

Тогда рабочая конфигурация для main.cf будет

relay_transport = lmtp:unix:private/dovecot-lmtp
relay_domains = mydomain1.com, mydomain2.com
virtual_alias_maps = hash:/usr/local/etc/postfix/virtualmailboxes

smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_sasl_auth_enable = yes

smtpd_tls_cert_file = /etc/ssl/servercertificate.pem
smtpd_tls_key_file = /etc/ssl/serverkey.pem
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

Все другие параметры в соответствии с вашими потребностями, но я ничего не трогал в образце main.cf, который поставляется с Postfix, чтобы все заработало.

виртуальные почтовые ящики:

info@mydomain1.com user@mydomain2.com
ceo@mydomain1.com user@mydomain2.com
sales@mydomain2.com user@mydomain2.com

Часть авторизации настроена в Dovecot:

auth_debug = yes
auth_verbose = yes
auth_mechanisms = plain
passdb {
  driver = passwd-file
  args = scheme=plain-md5 username_format=%u /usr/local/etc/dovecot/users
}
userdb {
  driver = passwd-file
  args = username_format=%u /usr/local/etc/dovecot/users
  default_fields = uid=dovemail gid=dovemail home=/var/mail/%u
}

/usr/local/etc/dovecot/пользователи:

user@mydomain1.com:{PLAIN}yourpassword::::::
user@mydomain1.com:{PLAIN}yourpassword::::::

/usr/local/etc/dovecot/conf.d/10 -В master.conf необходимо раскомментировать несколько строк в середине, чтобы уже присутствующий там раздел выглядел так:

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    group = postfix
    user = postfix
  }

и еще один раздел в том же файле:

unix_listener /var/spool/postfix/private/auth {
   mode = 0660
   user = postfix
   group = postfix
}

необходимо создать пользователя dovemail и предоставить права на чтение/запись почтового каталога, которым является /var/mail

0
28.01.2020, 00:38

Теги

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