Сообщения с очередями могут быть перемещены между Постфиксными серверами?

Мой сценарий - то, что у меня есть разорванная машина воздуха для keysigning. Мне дали некоторый код, который генерирует электронные письма для людей для получения их ключей со знаком, но я хотел бы сохранить эту машину от любой сети. Я настроил Постфикс на этой машине для помещения всей электронной почты в очередь хранения. Теперь я пытаюсь выяснить способ ввести эти электронные письма на мой сетевой сервер с Постфиксом, правильно настроенным для поставки почты. Я попытался переместить электронную почту в каталог хранения и организацию очередей их с sudo postsuper -r ALL. Это говорит, что сообщения были поставлены в очередь, но они никогда не поставляются. Кто-либо успешно выполнил это?

4
задан 2 February 2016 в 10:01

4 ответа

Если у кого-либо еще есть эта проблема, я закончил тем, что выполнил свою цель при помощи postcat для дампа всех электронных писем с очередями в отдельные файлы, скопировал тех, которые к новому серверу и ввели их в Постфикс с помощью sendmail -t. Эти -t флаг дает sendmail команду использовать заголовки из файла вместо того, чтобы указать отправителя и получателя как параметры командной строки.

2
ответ дан 1 December 2019 в 09:47

Я смог выполнить все это с единственной командой и отправить сообщение непосредственно на другой сервер через ssh. Я также отредактировал From поле, установив его на тот от msg_id_in_queue (взятый от экологических переменных, иначе):

postcat -bhq <msg_id_in_queue> | ssh user@server2 "sendmail -t -f info@domain.com"

Это могло бы быть улучшено с помощью regex для извлечения From поле непосредственно из исходного сообщения плюс удаление msg_id_in_queue после этого, но для использования мне было нужно, это было достаточно.

2
ответ дан 1 December 2019 в 09:47

У меня был мертвый сервер, на котором все еще были письма в /var/spool/postfix/{maildrop,defer,deferred}/. Мне удалось просто скопировать файлы в нужные места на рабочем сервере. Вот как:

  • Переместить диск, содержащий / var, с неработающего сервера на рабочий сервер и смонтировать его. В этом примере / var был отдельным разделом, и он смонтирован в /mnt/old_var/

  • . Установите правильные права доступа к файлам (в случае, если UID различаются):

chown -R postfix:postdrop /mnt/old_var/spool/postfix/maildrop
chown -R postfix:postfix  /mnt/old_var/spool/postfix/defer*
  • Перемещение файлов maildrop

mv /mnt/old_var/spool/postfix/maildrop/* /var/spool/postfix/maildrop/

  • Перемещение отложенных файлов
cd /mnt/old_var/spool/postfix/
find defer -type f -printf "%P\n" \
| while read f; do
    for d in defer deferred; do
      mv -v $d/$f /var/spool/postfix/$d/$f
    done
done

или та же последняя команда в одной строке:

cd /mnt/old_var/spool/postfix/; find defer -type f -printf "%P\n" | while read f; do for d in defer deferred; do mv -v $d/$f /var/spool/postfix/$d/$f; done; done
0
ответ дан 1 December 2019 в 09:47

Вы можете установить в транспортном файле / etc / postfix / transport такую ​​строку:

* smtp:[new_server_dns_or_ip]

Затем выполните:

postmap /etc/postfix/transport

Затем выполните postfix reload , чтобы загрузить изменения.

Затем очистите очередь с помощью:

postqueue -f

Если вместо настройки * вы установите имя домена, только почта в этот домен будет перенаправляться на новый сервер.

1
ответ дан 5 December 2019 в 08:56

Другие вопросы по тегам:

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