Файл ~/.muttrc
# ---- language-env DON'T MODIFY THIS LINE! # Character set to be used. set charset=utf-8 set send_charset=us-ascii:koi8-r:utf-8 # ---- language-env end DON'T MODIFY THIS LINE! set folder="~/mail" set mbox_type="Maildir" set spoolfile="~/mail/" set mbox="+Read" set record="+Sent" set postponed="+Drafts" mailboxes +Read +Sent +Drafts set signature="~/.signature" set move=yes macro index c "Создаём каталог для почты и назначаем нужные права.? " "open a different folder" macro pager c " ? " "open a different folder"
mkdir ~/mail mkdir ~/mail/new mkdir ~/mail/cur mkdir ~/mail/tmp chmod 0700 -R ~/mailПо мелочи:
Файл ~/.zshrc
# Добавляем export MAILDIR=$HOME/mail export VISUAL=vim export EDITOR=vim
Файл ~/.signature
Моя подпись :) Пока ничего не работает из-за особенностей локальной доставки, поэтому принимаемся за неё.Файл ~/.procmailrc
MAILDIR=$HOME/mail DEFAULT=$MAILDIR/
Procmail пока не раскидывает почту по каталогам, это оставлено на будущее.
Файл /etc/postfix/master.cf
# Не трогая остального добавляем следующую строчку hold unix - - - - - smtp
Файл /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
#=================================
# Моя машина имеет имя rbox.net
myhostname = rbox
mydomain = net
mydestination = rbox.net, localhost.net, localhost
#=================================
# адрес smtp провайдера
relayhost = smtp.mail.ru
mailbox_size_limit = 0
home_mailbox=mail/
mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME
default_transport=hold
defer_transports = hold
transport_maps=hash:/etc/postfix/transport
disable_dns_lookups=yes
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_security_options = noanonymous
Создаём три файлика
Файл /etc/postfix/transport
rbox local: rbox.net local: localhost.rbox.net local:
Файл /etc/postfix/generic
локальный_пользователь@rbox имя_ящика@mail.ru локальный_пользователь@rbox.net имя_ящика@mail.ru
Файл /etc/postfix/sasl_passwd
smtp.mail.ru имя_ящика:пароль_к_ящикуДаём знать Postfix'у о существовании этих файлов:
cd /etc/postfix postmap generic postmap transport postmap sasl_password /etc/init.d/postfix restartНа данный момент можно без подключения к сети написать письмо самому себе, отправить и получить. Изменим поведение postfix, чтобы при наличии соединения письма отправлялись немедленно, а не копились в очереди.
Файл /etc/ppp/ip-up.d/postfix
#!/bin/sh -e # Called when a new interface comes up # Written by LaMont Jones# don't bother to restart postfix when lo is configured. if [ "$IFACE" = "lo" ]; then exit 0 fi # If /usr isn't mounted yet, silently bail. if [ ! -d /usr/lib/postfix ]; then exit 0 fi RUNNING="" # If master is running, force a queue run to unload any mail that is # hanging around. Yes, sendmail is a symlink... if [ -f /var/spool/postfix/pid/master.pid ]; then pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid) exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///') if [ "X$exe" = "Xmaster" ]; then RUNNING="y" fi fi # start or reload Postfix as needed if [ ! -x /sbin/resolvconf ]; then f=/etc/resolv.conf if ! cp $f $(postconf -h queue_directory)$f 2>/dev/null; then exit 0 fi if [ -n "$RUNNING" ]; then #=============================================================== # Вот новая строчка /usr/sbin/postconf -e defer_transports=smtp /etc/init.d/postfix reload >/dev/null 2>&1 fi fi # If master is running, force a queue run to unload any mail that is # hanging around. Yes, sendmail is a symlink... if [ -n "$RUNNING" ]; then if [ -x /usr/sbin/sendmail ]; then /usr/sbin/sendmail -q >/dev/null 2>&1 fi fi
Файл /etc/ppp/ip-down.d/postfix
#!/bin/sh -e # Called when an interface disconnects # Written by LaMont JonesЗабираем почту с помощью fetchmail.# start or reload Postfix as needed # If /usr isn't mounted yet, silently bail. if [ ! -d /usr/lib/postfix ]; then exit 0 fi RUNNING="" # If master is running, force a queue run to unload any mail that is # hanging around. Yes, sendmail is a symlink... if [ -f /var/spool/postfix/pid/master.pid ]; then pid=$(sed 's/ //g' /var/spool/postfix/pid/master.pid) exe=$(ls -l /proc/$pid/exe 2>/dev/null | sed 's/.* //;s/.*\///') if [ "X$exe" = "Xmaster" ]; then RUNNING="y" fi fi if [ ! -x /sbin/resolvconf ]; then f=/etc/resolv.conf if ! cp $f $(postconf -h queue_directory)$f 2>/dev/null; then exit 0 fi #=============================================================== # Вот новая строчка /usr/sbin/postconf -e defer_transports=hold if [ -n "$RUNNING" ]; then /etc/init.d/postfix reload >/dev/null 2>&1 fi fi exit 0
Файл ~/.fetchmailrc
poll pop3.mail.ru protocol pop3
user "имя_ящика", with password "пароль_к_ящику", is "локальный_пользователь" here;
sslproto=""
Вот и всё. В таком варианте я получаю почту ручками (fetchmail -v), отвечать могу как оффлайн, так и онлайн. Пока я не в сети почта накапливается, при подключении к сети очередь сбрасывается и далее осуществляется немедленная отправка.

Комментариев нет:
Отправить комментарий