Debian: exim, Maildir и почта

В Linux нет хорошего интегрированного программного обеспечения. Вам нужно использовать 2 части программного обеспечения.

  1. Текстовый редактор с подсветкой хотя бы синтаксиса
  2. FTP-клиент

В FTP-клиенте укажите имя пользователя и пароль, а также загрузите файлы. Откройте их с помощью текстового редактора. Работать. Сохраните их, а затем загрузите заново, убедившись, что выбрали замену.

1
10.12.2014, 12:38
1 ответ

У вас может быть несколько вариантов, но они не универсальны.

Если журналы почтового сервера доступны для чтения во всем мире, их можно проверить на наличие сообщений об ошибках. Если ваш почтовый сервер exim , найдите /var/log/exim/ или просто /var/log/mail . То, что именно регистрируется где именно в конечном итоге отдельная банка червей, где отправной точкой является конфигурация syslog , но это не единственная игра в городе; но если в вашей системе имеется /etc/syslog.conf , то это, вероятно, так (особенно если вы находитесь на устаревшей платформе, такой как CentOS).

(Если журналы не читаются во всем мире, возможно, вы можете убедить системного администратора изменить это и/или добавить вас в группу, которая имеет доступ для чтения; или, по крайней мере, grep для сообщений об ошибках, связанных с вашей .forward проблемой вокруг конкретного пункта в последнее время.)

Во-вторых, вы получаете сообщение об отскоке? Обычно, когда почтовый сервер не может доставить ваше сообщение, он отправляет обратно сообщение об ошибке (DSN, «bounce», «boomerang») с более или менее подробной диагностикой.

Если вам повезло, вы можете пройти диагностику без отправки электронной почты, подключившись к почтовому серверу и поговорив с ним. Предполагается, что SMTP-сервер работает на порте 25 localhost , например,

bash@centos$ telnet localhost 25
>>> Connecting to localhost ...
>>> 220 Exim is listening, congratulations.
<<< vrfy you@example.com
>>> 454 4.7.1 you@example.com relay access denied
<<< quit
>>> 221 So long, sayonara, au revoir.

, где < < < указывает на вводимые данные, а > > > - ответы от удаленной системы. Это конкретное сообщение об ошибке является маловероятным результатом, но, по крайней мере, иллюстрирует то, что вы можете ожидать увидеть и что нужно понять (в основном, 2xx - это нормально, а 4xx или 5xx - это ошибка, как в HTTP).

Все подсчитанное, Procmail имеет довольно ограниченное количество режимов отказа. Я бы заподозрил разрешения на ваш файл .procmailrc как первое, что нужно исследовать.

Бесстыдная вилка: См. также http://porkmail.org/era/mail/procmail-debug.html

-121--92380-

Можно использовать perl (получить содержимое файла и заменить образцы на образцы + содержимое файла ):

perl -pe '$text=`cat insert.txt`; chomp($text); s/PAT/$&$text/' file.txt

добавить -i для редактирования на месте; g для добавления после каждого события PAT (образца), например:

perl -i -pe '$text=`cat insert.txt`; chomp($text); s/PAT/$&$text/g' file.txt

Другой способ, используя ed :

printf '%s\n' /PAT/s/PAT/\&\\ \/ - kb ". r insert.txt" j \'b j ,p q | ed -s file.txt

для редактирования по месту замените , p на w :

 printf '%s\n' /PAT/s/PAT/\&\\ \/ - kb ". r insert.txt" j \'b j w q | ed -s file.txt

Вероятно, никого не интересует, как это работает, но в любом случае printf передает список команд в ed :

/PAT/s/PAT/&\             #   set address to first line matching PAT and
/                         #   split the line right after PAT
-                         #   set address one line before (return to the line matching PAT)
kb                        #   mark the current line
. r insert.txt            #   insert content of insert.txt after this line         
j                         #   join current line and the next
'b                        #   set  address to marked line (return to the line matching PAT)
j                         #   join current line and the next one
,p                        #   print file content
q                         #   quit editor

Или, не используя printf и | :

ed -s file.txt <<< $'/PAT/s/PAT/&\\\n/\n-\nkb\n. r insert.txt\nj\n\'b\nj\nw\nq\n'
-121--25573-

Хорошо, @ jordanm дал мне правильное направление, но информация разбросана по Сети, поэтому я думаю, что стоит выложить какой-то путеводитель сам.

  1. Установка пакетов mailutils и heirloom-mailx :

     sudo apt-get install mailutils heirloom-mailx
    
  2. Обновление альтернативных вариантов для mailx - выберите /usr/bin/heirloom-mailx :

     sudo update-alternatives --config mailx
    
  3. Последняя часть: обновление файлов 3 в /etc/pam.d/. В каждом из трех следующих файлов имеется последовательность, начинающийся с session optional pam_mail.so, обновите его следующими значениями:

    /etc/pam.d/login :

     session optional pam_mail.so dir = ~/Maildir standard
    

    /etc/pam.d/su :

     сеанс необязателен pam_mail.so dir = ~/Maildir nopen
    

    /etc/pam.d/sshd :

     сеанс необязателен pam_mail.so dir = ~/стандарт Maildir
    

Источники: Спросите Ubuntu и этот блог .

0
28.01.2020, 01:48

Теги

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