postfix: отправить копию каждого письма на указанный адрес - PullRequest
5 голосов
/ 16 апреля 2009

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

Ответы [ 2 ]

8 голосов
/ 28 ноября 2012

Я недавно получил эту работу, так что я хотел бы поделиться:

Отправка всей исходящей почты в папки «Отправленные» с помощью postfix и cyrus imap.

Краткое описание

Сделать так, чтобы postfix отправлял копии всех исходящих писем на специальную «рассылку» почтовый аккаунт. Используйте сито на этой специальной учетной записи, чтобы перенаправить все электронные письма в папку «Отправленные», связанную с учетной записью.

  1. Создать учетную запись пользователя электронной почты для отправки

    Самый простой способ сделать это - создать новую учетную запись unix для отправки, установка оболочки в / bin / false, чтобы никто не смог войти в:

    host$ sudo useradd sent
    host$ sudo chsh -s /bin/false sent
    
  2. Настройка imap для отправленного пользователя

    Используя cyradm, мы создаем новый почтовый ящик (т.е. пользователя) и даем этому пользователю возможность добавить доступ ко всем нашим папкам imap "Отправлено":

    host$ $ cyradm -user cyrus localhost
    Password: <enter you cyrus user admin password here>
    localhost> createmailbox user.sent
    localhost> setaclmailbox user.%.Sent sent append
    Setting ACL on user.userx.Sent...OK.
    Setting ACL on user.usery.Sent...OK.
    . . .
    Setting ACL on user.userz.Sent...OK.
    localhost> exit
    
  3. Создать ситовый скрипт для отправленной учетной записи

    Этот скрипт перенаправит всю входящую почту на отправленную учетную запись, на Отправленная папка в папке «Входящие» отправителей.

    Мой скрипт называется sent.sieve и выглядит примерно так:

     # Sieve script for sent.  If outgoing email is bcc'ed to this account,
     # this sieve script will redirect it to the sender's Sent folder
     require ["fileinto"];
    
     if address :is :localpart "From" "userx" {
       fileinto "user.userx.Sent";
     }
     elsif address :is :localpart "From" "usery" {
       fileinto "user.usery.Sent";
     }
     elsif address :is :localpart "From" "userz" {
       fileinto "user.userz.Sent";
    }
    

    Вам нужно будет ввести запись для каждого из ваших пользователей (userx, usery, userz в примере выше). Я не смог найти лучший способ сделать это. Предложения приветствуются marc@bloodnok.com

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

    host$ sieveshell localhost -user=sent -a=cyrus
    Password: <enter you cyrus user admin password here>
    > put sent.sieve
    > activate sent.sieve
    > quit
    
  4. Настройка отображения ОЦК для постфикса

    В каталоге postfix (/ etc / postfix в debian) создайте файл с именем bcc_map, которое выглядит так:

    # copy all locally sent mail to the sent account
    @yourdomain.com       sent@yourdomain.com
    

    Скомпилируйте это в хеш-файл постфикса, используя:

    host$ sudo postmap bcc_map
    

    Добавьте следующую строку в файл конфигурации postfix main.cf:

    sender_bcc_maps = hash:/etc/postfix/bcc_map
    

    И сделать postfix перезагрузить свою конфигурацию:

    host $ sudo /etc/init.d/postfix reload

  5. Тестирование и отладка

    Отправьте электронное письмо и убедитесь, что оно скопировано в папку «Отправленные».

    В случае возникновения проблем вы должны проверить логи cyrus и postfix (все записаны в /var/log/syslog на моем хосте debian). Проверь и неверно права доступа обычно приводят к тому, что некоторая подсказка отправляется журналы.

3 голосов
/ 24 ноября 2015

Просто добавьте always_bcc=youremail@gmail.com в /etc/postfix/main.cf и перезапустите сервер postfix. Я добавил эту строку внизу.

Кажется, это действительно работает. Подробнее о Always_bcc здесь

Пожалуйста, не забудьте сначала сделать резервную копию этого файла.

...