Назад | Перейти на главную страницу

постфиксный псевдоним maildir доставляется ~ пользователю / Maildir / вместо ~ user / Maildir / alias /

Моя среда:

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.6 (Santiago)
# rpm -q postfix
postfix-2.6.6-6.el6_5.i686
# 

Я переключился home_mailbox из Mailbox к Maildir/:

# postconf -n | grep home_mailbox
home_mailbox = Maildir/
# 

Я отправляю себе тестовое письмо: test+A@example.org, но электронная почта доставляется в test@example.org вместо этого по какой-либо причине он игнорирует мои +A псевдоним.

Моя цель для test+A@example.org быть доставленным ~test/Maildir/.A/ а не в ~test/Maildir/.

Что я делаю не так? Что мне не хватает?

Здесь расширенная версия Комментарий @sebix выше. это непроверенный решение взято непосредственно из dovecot 2 wiki: Примеры сита голубятни.


Тебе нужно дополнительный адрес расширение от сита голубятни, чтобы сделать это. Поместите это в скрипт сита. Вот простой пример размещения адреса электронной почты foo+spam@example.org в Спам папка.

require ["fileinto", "envelope", "subaddress"];
if envelope :detail "to" "spam"{
  fileinto "Spam";
}

Более сложный пример - использование регулярного выражения для захвата расширения адреса и помещения его в ту же папку. Например, test+A@example.org будет доставлен А вложенная папка, test+B@example.org будет доставлена B подпапка и так далее

require ["variables", "envelope", "fileinto", "subaddress"];
if envelope :is :user "to" "test" {
  if envelope :matches :detail "to" "*" {
    /* Save name in ${name} in all lowercase except for the first letter.
     * Joe, joe, jOe thus all become 'Joe'.
     * Of course you can set into all lowercase letter
     */
    set :lower :upperfirst "name" "${1}";
  }

  if string :is "${name}" "" {
    /* Default case to INBOX */
    fileinto "INBOX";
  } else {
    fileinto "${name}";
  }
}

Для работы с Postfix требуется, чтобы конверт «to» по-прежнему содержал полный адрес, поэтому передайте его с флагом -a.

Для комплекта местной доставки

mailbox_command = /usr/lib/dovecot/dovecot-lda -a "$RECIPIENT"

или для виртуальной доставки

dovecot unix    -       n       n       -       -      pipe
  flags=DRhu user=mail:mail argv=/usr/local/libexec/dovecot/dovecot-lda
  -f ${sender} -d ${user}@${nexthop} -a ${recipient}