|
|
Строка 1: |
Строка 1: |
| = Настройка почтовой программы '''mutt''' на работу с несколькими аккаунтами и независимыми настройками. =
| | #перенаправление [[Mail/Mutt/TwoAccounts]] |
| Возьмем связку из {{cmd|fetchmail}} (это тот,кто будет ловить почту), {{cmd|procmail}} (разгребать пришедшую почту и складывать куда нам надо и как надо) , для отправки {{cmd|msmtp}}, ну и сам {{cmd|mutt}}.
| |
| Надо сказать, что все нижеприведенное умеет и сам {{cmd|mutt}}, кроме сортировки почты, но мы рассматриваем сложный случай, когда его функциональности недостаточно.
| |
| Итак - приступим.
| |
| ==настройка fetchmail==
| |
| {{cmd|cat /home/localuser/.fetchmailrc}}
| |
| #set daemon 1200
| |
| set logfile /home/demo/.fetchmail.log
| |
| defaults proto pop3 timeout 120 tracepolls mda "/usr/bin/procmail -d %T" fetchlimit 20 limit 150000
| |
| poll pop.gmail.com user "gmailuser@gmail.com" is "localuser" password "SuPeRpArOl" ssl
| |
| poll pop.mail.ru user "supermailuser" keep password "SUperPaSSWord"
| |
| | |
| где ''gmailuser@gmail.com'' и ''supermailuser'' -имена пользователей (логин) для авторизации на почтовом сервере, ''localuser'' - имя локального пользователя, под которым вы будете читать почту (опция ''is "localuser"'' необязательна, все равно почту по почтовым ящикам пользователей рассовывает {{cmd|procmail}}, если у него хватает прав доступа, конечно), ''SuPeRpArol'' и ''SUperPaSSWord'' - пароли для почтового сервера, ''pop.gmail.com'' и ''pop.mail.ru'' - адрес почтового сервера. <br>
| |
| Опция ''proto'' означает тип соединения, в данном случае ''pop3''.<br>
| |
| Опция ''timeout'' выставляет таймаут для соединения, по истечении этого времени соединение считается потерянным.<br>
| |
| Опция ''tracepolls'' указывает {{cmd|fetchmail}} дописывать в заголовки каждого письма еще один ''Received'' с информацией о дате и пути скачивания письма (бывает, что это важно).<br>
| |
| Опция ''mda'' указывает передавать полученные письма следующей программе, в данном случае сортировшику почты {{cmd|procmail}} с опциями ''-t'' — не отбрасывать почту при невозможности доставки (нет хуже отправленного и потерянного письма) и ''%T'' — вместо нее подставляется локальный пользователь, которому следует положить данное письмо в ящик.<br>
| |
| Опция ''fetchlimit'' указывает на необходимость реконнекта после получения 20 писем с сервера. Необходимо для медленных и неустойчивых каналов, чтобы не качать письма по несколько раз при обрыве очереди.<br>
| |
| Опция ''limit'' предписывает отказывать в получении писем размером более указанного (в байтах).<br>
| |
| Опция ''keep'' означает - не удалять письма с почтового сервера после получения.<br>
| |
| Опция ''ssl'' требуется для Google/mail, означает безопасное соединение с шифрованием через порт 995 (напомню, обычный почтовый трафик не зашифрован). Gmail требует эту опцию, на остальных серверах включать по желанию и поддержке сервером.<br>
| |
| Строка, начинающаяся с ''defaults'', считается общей для всех серверов.<br>
| |
| Строка, начинающаяся с ''poll'', заключает в себе опции для одного сервера (ранее эта опция и называлась ''server'', в нынешних версиях переименована). Может заключать в себе несколько почтовых ящиков для разных пользователей (имеет смысл только при запуске {{cmd|fetchmail}} от имени root ).<br>
| |
| Строку вначале файла можно раскомментировать для запуска {{cmd|fetchmail}} в фоновом режиме каждые 1200 секунд (20 минут).
| |
| | |
| | |
| ==Настройка procmail==
| |
| {{cmd|cat /home/localuser/.procmailrc}}
| |
| MAILDIR=$HOME/Mail ##вся почта идёт сюда
| |
| DEFAULT=$HOME/default
| |
| LOGFILE=$HOME/.procmaillog
| |
| LOCKFILE=$HOME/.lockmail
| |
| LOGABSTRACT=no
| |
| VERBOSE=off
| |
| FORMAIL=/usr/bin/formail ##программа для отлова копий
| |
| NL=""
| |
| ##условные строки начинаются с :0
| |
| ##не записывайте комментарии в строки условия
| |
| ##отредактируйте ненужные условия!
| |
| ##Строки условий начинаются с *, а регулярные выражения ваши лучшие друзья
| |
| ##условия, добавленные после * попадают прямо в egrep
| |
| ##строка, следующая за условиями, в следующем регистре является именем почтового ящика
| |
| #Отлавливание копий, используя formail
| |
| :0 Whc: .msgid.lock
| |
| | $FORMAIL -D 16384 .msgid.cache
| |
| :0 a
| |
| $MAILDIR/duplicates
| |
| #люди которые всегда пишут с одного почтового адреса
| |
| :0
| |
| * ^From:.*(petya@rambler.ru|petya86@mail.ru)
| |
| $MAILDIR/friends
| |
| #выборка некоторого спама
| |
| :0
| |
| * ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
| |
| $MAILDIR/spam
| |
| #html - ф топку
| |
| :0
| |
| * ^Content-Type:.*html
| |
| $MAILDIR/junk
| |
| #сортировка писем из списков рассылки (в данном случае по заголовку письма List-Id)
| |
| :0
| |
| * ^List-Id:.*Desktop.*
| |
| $MAILDIR/desktop
| |
| :0
| |
| * ^List-Id:.*community.*
| |
| $MAILDIR/comm
| |
| :0
| |
| * ^List-Id:.*sysadmin.*
| |
| $MAILDIR/sysadmins
| |
| #сортировка по почтовым ящикам писем с разных почтовых учётных записей
| |
| :0
| |
| * ^To:.*gmailuser@gmail.com
| |
| $MAILDIR/gmail
| |
| :0
| |
| * ^To:.*supermailuser@mail.ru
| |
| $MAILDIR/mailru
| |
| ###########################################
| |
| # Последние условие: складирует остальную #
| |
| # почту в почтовый ящик по умолчанию #
| |
| ###########################################
| |
| :0
| |
| * .*
| |
| DEFAULT
| |
| | |
| MAILDIR - каталог с почтой.
| |
| DEFAULT - куда будет складываться неотсортированная почта
| |
| LOGFILE - куда будем лог писать (иногда бывает полезно читать логи :-)
| |
| LOCKFILE - чтобы не запускалось несколько копий одновременно.
| |
| | |
| ''gmailuser@gmail.com'' и ''supermailuser@mail.ru''
| |
| соответственно ваши адреса электронной почты.
| |
| | |
| ==Mutt==
| |
| | |
| | |
| Теперь в [[DotFiles/Mail/Mutt|настройки mutt]] следует добавить парочку хуков:
| |
| | |
| folder-hook gmail set from="gmailuser@gmail.com", realname="stalker\ Вова"
| |
| folder-hook mailru set from="supermailuser@mail.ru"
| |
| | |
| Теперь при работе с этими 2 мейлбоксами будут автоматом подставляться нужные адреса.
| |
| Есть вариант для ручного [пере]определения, через какой ящик уйдет письмо:
| |
| macro generic "<esc>1" ":set from=supermailuser@mail.ru realname=stalker\ Vova"
| |
| macro generic "<esc>2" ":set from=gmailuser@gmail.com"
| |
| Теперь достаточно нажать последовательно '''Esc''', затем '''1''', и отправителем станет ''supermailuser'' с псевдонимом ''stalker Vova'' на сервере ''mail.ru''.
| |
| На один мейлбокс можно вешать несколько небольших хуков или один большого размера.Пример:
| |
| folder-hook asd set from="supermailuser@mail.ru"; my_hdr X-Operating-System:`uname -a`
| |
| | |
| Также необходимо все это хозяйство ({{cmd|fetchmail, procmail, formail, msmtp}}) подчинить "командному пункту" — {{cmd|mutt}}:
| |
| # получение почты стандартной клавишей Shift+G
| |
| macro index G "!/usr/bin/fetchmail -f ~/.fetchmailrc"
| |
| macro pager G "!/usr/bin/fetchmail -f ~/.fetchmailrc"
| |
| macro generic G "!/usr/bin/fetchmail -f ~/.fetchmailrc"
| |
| # отправка почты через msmtp
| |
| set sendmail="/usr/bin/msmtp"
| |
| set use_from=yes
| |
| set from="supermailuser@mail.ru" #дефолтный отправитель, можно и закомментировать, ибо есть записи в "~/.msmtprc"
| |
| set envelope_from=yes
| |
| set realname="Vova Petrov"
| |
| | |
| | |
| | |
| ==msmtp==
| |
| | |
| Конфигурация {{cmd|msmtp}}:
| |
| | |
| {{cmd|cat /home/localuser/.msmtprc}}
| |
| defaults
| |
| logfile ~/.msmtp.log
| |
|
| |
| account default : mailru
| |
|
| |
| account mailru
| |
| host smtp.mail.ru
| |
| port 25
| |
| from supermailuser@mail.ru
| |
| user supermailuser
| |
| password SuPeRpArOl
| |
| auth plain
| |
|
| |
| account gmailcom
| |
| host smtp.gmail.com
| |
| port 587
| |
| auth on
| |
| tls on
| |
| tls_starttls on
| |
| tls_certcheck off
| |
| from gmailuser@gmail.com
| |
| user gmailuser@gmail.com
| |
| password SUperPaSSWord
| |
| | |
| Здесь ''host'' — smtp-адрес сервера, куда отправлять почту; ''port'' — порт приема почты; ''from'' — от чьего имени; ''user'' и ''password'' — логин и пароль для аутентификации на сервере; опции ''auth'' и ''tls*'' — для создания защищенного соединения.
| |
| | |
| ==Безопасность==
| |
| | |
| Следует помнить, что все вышеперечисленные файлы должны иметь владельцем и группой только своего пользователя, и иметь права доступа 0600 — чтение и запись только для владельца, так как '''они содержат пароли в открытом виде'''. {{cmd|fetchmail}} и {{cmd|msmtp}} не поддерживают опцию "взять пароль из такого-то файла", но если он не указан, будут искать его в файле ~/.netrc ({{cmd|man ftp}}), так что можно указать пароль там один раз вместо нескольких. Если и там пароля нет, то по возможности на консоль будет выведен запрос на ручной ввод пароля. Опять же можно использовать сам {{cmd|mutt}} и не доверять пароль более никакой программе.
| |
| | |
| [[Категория:Почта]]
| |