Объясните формат user@domain постфиксного значения параметра $virtual_mailbox_maps

Я пытаюсь установить почтовый сервер с помощью этой статьи. В основном с помощью постфикса и голубятни.

У меня есть тестовая установка, которая работает, но я не понимаю некоторых (много) материала, и пытаюсь исправить это перед миграцией.

Из многих вещей это наиболее сбивает с толку: Я не понимаю, как вторая часть параметра $virtual_mailbox_maps работает.

У меня есть следующее в main.cf:

virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users

Мой/etc/postfix/virtual-mailbox-users смотрит как

user@domain1.com    user@domain1.com
user@domain2.com    user@domain2.com
etc, etc.

Во-первых, где я могу найти документацию второго параметра форматом user@domain1.com, большинство форматов имеет форму файла или каталога (как в/a/b/c).

Если я заменяю второй параметр чем-то еще, например,

user@domain1.com    /tmp/foo

затем я могу отправить почту в user@domain1.com, но не от, который приводит к:

Мой второй вопрос: SMTP использует $virtual_mailbox_maps? (И почему, так как это уже имеет адрес электронной почты как основной параметр?). Голубятня использует $virtual_mailbox_maps?

(У меня есть партии больше вопросов, но это может помочь мне распутать некоторых. Например, я могу иметь всю почту к user@domain*.com, поставленному одному из почтовых ящиков, сказать user@domain1.com?)

(Извините декларативную природу заголовка, мой оригинал запустился с, 'Как к', но был отклонен.)


Я сделал эксперимент, где я заменил запись $virtual_mailbox_maps, например, user@domain1.com OK, и доставка работала, но отказавшее электронное письмо отправки (с отклоненным адресом Отправителя: не принадлежавший пользователю). Так, правая сторона (значение) вопросы. Это - то, о чем был мой первый вопрос. (Я прочитал различные документы, описывающие формат, и т.д., но не могу найти ничего, что говорит конкретно о взаимодействии с SMTP.

Приложение: Благодаря @masegaloeh для того, чтобы разыскать это. Соответствующая конфигурация следующим образом, и 'поиск с помощью Google' smtpd_sender_login_maps объясняет остальное.

root@generic:/etc/postfix# postconf -n| grep smtpd_sender
smtpd_sender_login_maps = $virtual_mailbox_maps
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch
2
задан 25 June 2015 в 06:01
1 ответ

Когда postfix получает входящую почту, в основном он может быть разделен на три процесса:

  1. Получать почту, выполняя SMTP-транзакцию с почтовым сервером отправителя и применяя SMTP-ограничения, например: проверяет, существует ли получатель
  2. Хранить почту, отправляя её в один из агентов доставки (dovecot, local, virtual)

Основываясь на двух процессах, описанных выше, параметр virtual_mailbox_maps имеет (как минимум) две функции:

  1. Как подтверждение получателя, когда постфикс получает почту, так постфикс может отвергнуть несуществующего получателя. Эта проверка выполнялась при вызове reject_unauth_destination .
  2. Параметр, в котором virtual(8) агент доставки ищет местоположение почтового ящика. Параметр $virtual_mailbox_base безусловно префиксованный к этому пути, поэтому абсолютный путь хранилища maildir - $virtual_mailbox_base$virtual_mailbox_maps.

Вторая функция может быть использована только в том случае, если вы настроили postfix на отправку почты агенту доставки virtual. На основании инструкции, которую вы написали выше, postfix будет использовать dovecot вместо virtual.

virtual_transport = dovecot

Так как доставка почты осуществляется через dovecot-lda, то virtual_mailbox_maps на этом этапе (хранение электронной почты) не использовался. Вместо постфиксной конфигурации, dovecot будет использовать этот параметр

mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs

, чтобы определить, где хранить письмо.


Где документально подтверждено, что формат файла $virtual_mailbox_maps - это "адрес" и , что второй должен совпадать с первым, чтобы SMTP мог работать (note: Это основано на моих эмпирических наблюдениях)?

Параметр virtual_mailbox_maps должен состоять из одной или нескольких поисковых таблиц . . Во всех постфиксных таблицах поиска информация хранится в виде пар (ключ, значение). Поэтому файл virtual_mailbox_maps состоит из двух столбцов: левый - для ключа, а правый - для значения.

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

Однако, в некоторых таблицах Postfix должен знать только, существует ли ключ поиска. . Здесь может быть использовано любое непустое значение результата поиска : результат поиска не используется. Например, smtpd использует virtual_mailbox_maps для проверки, существует ли получатель.

Таким образом, на самом деле вы можете поместить любую запись в правую часть virtual_mailbox_maps, так как постфикс его не будет использовать. В этом случае нет формата "адрес".


Когда я заменил запись $virtual_mailbox_maps, например, на user@domain1.com OK, и доставка сработала, но отправка почты не удалась (с Адрес отправителя отклонен: не принадлежит пользователю)

Это потому, что у вас есть этот параметр в main. cf

smtpd_sender_restrictions = reject_unknown_sender_domain,
    reject_sender_login_mismatch
smtpd_sender_login_maps = $virtual_mailbox_maps

Когда у вас есть reject_sender_login_mismatch и smtpd_sender_login_maps на нем, постфикс будет проверять, совпадает ли ваше SASL имя пользователя с именем отправителя, указанным при отправке сообщения. Поэтому формат smtpd_sender_login_maps = $virtual_mailbox_maps должен состоять из:

my.real.email@example.com   my.sasl.username@example.com

В вашем случае my.real.email@example.com = my.sasl.username@example.com, поэтому в вашем $virtual_mailbox_maps должен быть указан "адрес".

Конечно, вы можете предоставить smtpd_sender_login_maps с другой таблицей с virtual_mailbox_maps. Но автор статьи решил их объединить. Возможно, причина заключается в том, что вам нужно изменить только один файл на добавление/удаление действительного получателя

4
ответ дан 3 December 2019 в 10:01

Теги

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