Как настроить динамический адрес отправителя для универсального почтового адреса с помощью Dovecot и Postfix?

595
Jonny

Иногда мне нужно отправить письмо через адрес отправителя, который обычно получен на универсальный почтовый адрес. Но обычный метод манипулирования возвратом почты не является хорошим решением. Поэтому я использую «рабочий» сценарий с i-MSCP + RoundCube:

  • фиксированные почтовые ящики и одна ловушка
  • Если мне нужно отправить через динамический почтовый адрес (будет перехвачен catchall), я регистрирую почтовый ящик (временный для этой почты или почтового ящика + пересылка) и использую новые учетные данные в RoundCube.

Но теперь у меня есть минимальный сервер без программного обеспечения для управления. Я настроил postfix с фиксированными почтовыми ящиками и одним уловом (на основе регулярных выражений + черный список). Также dovecot работает с IMAP и учетными данными. Помимо того, что в настоящее время я не могу отправить почту через почтовый клиент (проблемы с аутентификацией), я хочу гораздо более простой способ отправки почты с любого адреса. Я не хочу что-то регистрировать, просто используйте <dynamic name>@domain.tldи глобальный пароль.

Мой постфикс / dovecot:

  • несколько доменов
  • нет базы данных, только файлы хешей и регулярных выражений
  • maildir (почти стандарт)
  • нет виртуальных пользователей (у catchall есть собственный пользователь unix)
  • нет транспортных манипуляций

Что такое секретное оружие postfix для достижения этого сценария отправки?

my main.cf(вход через smtp пока не работает, общие send и imap работают:

myhostname = domain.tld smtpd_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no delay_warning_time = 4h readme_directory = no  smtpd_tls_cert_file=/etc/letsencrypt/live/domain.tld/cert.pem smtpd_tls_key_file=/etc/letsencrypt/live/domain.tld/privkey.pem smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:$/smtpd_scache smtp_tls_session_cache_database = btree:$/smtp_scache smtp_tls_security_level = may smtpd_tls_auth_only = no smtpd_tls_received_header = yes smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = !SSLv2, !SSLv3  smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 smtp_tls_protocols = !SSLv2, !SSLv3  smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination  alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = $myhostname, domain.tld, localhost relayhost =  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all mynetworks_style = host home_mailbox = Maildir/ virtual_alias_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/regexp_virtual  smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access, permit_mynetworks, reject_unauth_destination  smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
1
Вы пытались настроить одну (статическую) учетную запись с паролем и разными почтовыми адресами? Хотя обычно почтовый адрес используется в качестве идентификатора пользователя, он не нужен для отправки почты. Jens Erat 7 лет назад 0
@JensErat OMG, после исправления аутентификации sasl для использования dovecot, я нашел комментарий для комментария (строка тестового варианта с огромным пробелом, которая выглядит как пустая строка). Теперь ваше предложение было правильным, я использую учетные данные пользователя системы catchall и любой адрес электронной почты. Это так просто, это должно быть базовое решение, и я потерпел неудачу. * плачет в углу, чтобы потерять два дня * Jonny 7 лет назад 0
Поскольку комментарий разрешил вашу проблему, я добавил ответ с некоторыми дополнительными пояснениями. Jens Erat 7 лет назад 0

1 ответ на вопрос

0
Jens Erat

Несмотря на то, что некоторые почтовые провайдеры фактически применяют адрес отправителя, принадлежащий аутентифицированной учетной записи, это, как правило, недопустимо, особенно для конфигурации Postfix по умолчанию. На самом деле, довольно часто используют некоторый почтовый провайдер в качестве ретранслятора почты, когда хостинг-серверы находятся за домашними восходящими линиями связи с динамическими IP-адресами (которые блокируются большинством черных списков, потому что с этих адресов отправляется много спама). Я предполагаю, что большинство даже не применяет домен отправителя.

Вы должны иметь возможность проходить аутентификацию по почтовому адресу вашей учетной записи, но настраивать учетную запись с другим адресом отправителя. Например, Thunderbird также позволяет предоставлять несколько учетных записей для каждой учетной записи SMTP, которая доступна именно для этой цели.

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