Посты по тегу: mail

Настройка DKIM подписи в Amavisd

Если вы пришли сюда, то вероятно уже знаете, что такое DKIM и зачем оно нужно. Если же нет, то вам сюда.

Amavisd умеет сам подписывать письма без сторонней помощи и настривается он весьма просто:

Создаем ключ для домена:

mkdir /etc/amavis/keys/
amavisd-new genrsa /etc/amavis/keys/example.com.key;

Конфигурируем Amavisd:

Создадим файл /etc/amavis/conf.d/55-dkim с содержимым:

$enable_dkim_signing = 1;
dkim_key('example.com', 'mail', '/etc/amavis/keys/example.com.key');

@dkim_signature_options_bysender_maps = ({ '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );

@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16);  # list your internal networks

1;

Читать далее...

Есть ли почта в консоли?

Я очень долгое время использовал для работы с почтой Mozilla Thunderbird. Но с каждым годом эта ранее быстрая и легковесная программа превращалась в неповоротливого монстра. И вот мне наконец надоело и я решил попробовать использовать старый, но от того не разросшийся до невменяемого состояния, консольный почтовый клиент mutt.

Справка

mutt — почтовый клиент с текстовым интерфейсом для Unix-подобных операционных систем. Написан Майклом Элкинсом в 1995 году и распространяется по лицензии GPL. Изначально напоминал Elm, затем программа больше походила на slrn.

Mutt поддерживает большинство форматов почтовых ящиков (в том числе mbox и Maildir) и протоколов (POP3, IMAP и т. д.). Также включает поддержку MIME, PGP/GPG и S/MIME-интеграцию.

Mutt является чистым Mail User Agent (MUA) и не может отсылать e-mail самостоятельно. Для этого ему необходимо иметь соединение с Mail Transfer Agent (MTA) (почтовым сервером) либо SMTP-клиентом.

Установка в Ubuntu

В Ubuntu есть две версии mutt:

  1. Классический mutt
  2. Mutt с кучей патчей по улучшению отображения и работы

Я поставил себе патченную версию, т.к. она мне показалась более логичной:

$ sudo apt-get install mutt-patched

Настройка

Настройка производится в файле \~/.muttrc. Я не буду расписывать всю настройку, документации полно в сети, а лишь покажу то, что сделано у меня:

# GENERAL
set realname = "Vasya Pupkin"                        # Имя пользователя
set use_from = yes
set sort = reverse-threads                           # Сортировка по обсуждениям в обратном порядке
set sort_aux = last-date-received                    # Сортировка по дате получения
set mail_check = 5                                   # Проверять почту раз в 5 секунд
set timeout = 10                                     # Таймаут соединения
set net_inc = 5
set signature = ~/.signature                         # Файл подписи
set delete = yes                                     # Удалять без подтверждения
set copy = no                                        # Копировать с подтверждением
set move = yes                                       # Перемещать письма без подтверждения
set edit_headers                                     # Показывать заголовки при написании письма
set editor = "/usr/bin/sublime-text -w"              # Редактор
set include = yes                                    # Добавлять цитирование при ответе
set mark_old = no                                    # Не помечать прочитанные для перемещения в mbox
set save_empty = no                                  # Не созранять пустые сообщения
set pgp_verify_sig = yes                             # Автоматически проверять PGP подпись письма

# Не показывать эти заголовки (нажатие 'h' покажет все)
ignore X-Mailer Delivered-To X-Delivery-ID X-Priority X-MSMail-Priority X-MimeOLE X-Spam-Checker-Version X-Spam-Level X-Spam-Status Precedence X-No-Archive List- DomainKey-Signature In-Reply-To User-Agent DKIM-Signature X-Google-Sender-Auth

# Bindings
macro index,pager S s+Junk                           # Shift+s отправит письмо в спам
macro index,pager A s+Archives.2016                  # Shift+a отправит письмо в папку Archives -> 2016
bind index G imap-fetch-mail                         # Shift+g получит новые письма

unhdr_order *                                        # Сбрасывает настройки порядка показа заголовков
hdr_order date from to cc subject                    # Порядок показа заголовков

# IMAP
set from = user@example.com                          # Адрес отправителя
set imap_user = user@example.com                     # IMAP логин
set imap_pass = Pa$sw0rd                             # IMAP пароль
set smtp_url = smtp://user@example.com:25/           # SMTP логин@сервер
set smtp_pass = Pa$sw0rd                             # SMTP пароль
set imap_keepalive = 900
set folder = imaps://example.com:993                 # IMAP сервер
set spoolfile = +INBOX #or +[Gmail]/Important        # Имя папки входящих сообщений
set postponed = +Drafts                              # Имя папки с черновиками
set header_cache = ~/.mutt/cache/headers             # Файл кеша заголовков
set message_cachedir = ~/.mutt/cache/bodies          # Файл кеша сообщений
set certificate_file = ~/.mutt/certificates          # Файл кеша сертификатов
set ssl_starttls = yes                               # Использовать StartTLS
set ssl_force_tls = yes                              # Обязательно использовать TLS
unset imap_passive                                   # Отключить пассивный решим IMAP
set imap_check_subscribed                            # Проверять подписки на папки

# HTML
set implicit_autoview                                # Использовать фильтры по содержимому
set mailcap_path="~/.mailcap"                        # Файл с описанием фильтров

# GPG
source /usr/share/doc/mutt/examples/gpg.rc           # Подключить PGP/GnuPG шифрование
# Ссылка на публичный ключ в сети
my_hdr X-PGP-Key: https://blog.lyalyuev.info/wp-content/uploads/05420A87.pub

set pgp_use_gpg_agent = yes                          # Использовать GPG Agent
set pgp_sign_as = 05420A87                           # Подписывать письма ключем 05420A87
set pgp_timeout = 3600
set crypt_autosign = no                              # Автоматически не подписывать сообщения
set crypt_replyencrypt = yes                         # Отвечать шифрованием на шифрованные сообщения

Из комментариев к конфигу все должно быть понятно. Осталось два файла:

  1. \~/.signature - это файл с подписью, которая будет автоматически добавляться к письму. Может содержать в себе что угодно.
  2. \~/.mailcap - файл с описанием типа вложения и программой, которая должна его открывать:

    text/html; firefox %s; needsterminal;

В данном случае имеется ввиду, что файлы вложений типа text/html открывать надо с помощью firefox. Так я открываю HTML письма, которые не содержат в себе текстовой части.

Работа в mutt

Mutt использует консервативный набор клавиш, т.к. этому клиенту уже очень много лет. Поэтому многим сложно его использовать. Но если запомнить основные комбинации, то становится легко и просто.

? - справка по клавишам
m - создать письмо
r - ответить на письмо
c - сменить папку
q - выход
y - подтверждение действия

Следите за подсказками в верхней строке и почаще заглядывайте в хелп. И все у вас получится. ;)

Очистка почтовой очереди по получателю

Поиск по получателю письма и очистка почтовой очереди:

postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / mail@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -

How To: ошибка Amavis Can’t locate Mail/SpamAssassin...

Сегодня после рестарта и допиливания Amavis в логах появилась такая ошибка:

07 Oct 10:13:48 mail amavis[66684]: (!)_DIE: Can’t locate Mail/SpamAssassin/CompiledRegexps/body_0.pm in @INC (@INC contains: /var/db/spamassassin/compiled/5.008/3.003000 /var/db/spamassassin/compiled/5.008/3.003000/auto lib /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8) at (eval 875) line 1.
07 Oct 10:13:48 mail amavis[66684]: (!)_DIE: Can’t locate Mail/SpamAssassin/CompiledRegexps/body_0.pm in @INC (@INC contains: /var/db/spamassassin/compiled/5.008/3.003000 /var/db/spamassassin/compiled/5.008/3.003000/auto lib /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8) at (eval 875) line 1.\nBEGIN failed—compilation aborted at (eval 875) line 1.

После чего Amavis падает. Решается просто:

sudo sa-compile
sudo sa-update -D
sudo service amavis restart