Skip navigation.
Home

Почту настраиваем

ПРОШУ ПОМОЩИ ЗАЛА.

Учения. Танкисты, матерясь, в 4 руки и два лома натягивают
гусеницу, слетевшую с танка. Из леса выходит добрая фея.
Высокая упругая грудь, тонкая ткань почти не скрывает соски,
стройные ноги, крутые бедра. Танкисты замирают.
- Ребята, а что вы тут делаете?
- Да вот, с танком трахаемся, добрая фея!
- Ребята, а хотите по-настоящему?
Глаза жадно ощупывают точеную фигуру, из глоток вырывается синхронное:
- Да!
.....и тут у танка отваливается башня.

Я, собственно, вот по какому вопросу:

Соратники, не дайте сдохнуть, я скоро в дурку заеду

настраиваю связку getmail, msmtp, mutt, procmail.

Я поборол почти все. уперся в procmail

вот мое дерево почты (каталоги и файлы):

alex@notebook ~/.mail $ tree
.
├── amironov
│   ├── cur
│   │   └── 1562182568.M686779P14827Q0R8e681dbf8120e46f.notebook:2,S
│   ├── new
│   └── tmp
├── Ecommerce
│   ├── cur
│   ├── new
│   └── tmp
├── gmail
│   ├── cur
│   │   └── 1562182125.M852524P14679Q0Rfe2acfc7f6cb946b.notebook:2,S
│   ├── new
│   └── tmp
├── Friend1
│   ├── cur
│   │   └── 1562520517.R12670711615782988453.notebook:2,RS
│   ├── new
│   └── tmp
├── Friend2
│   ├── cur
│   │   ├── 1562520477.R12799866849081418210.notebook:2,S
│   │   ├── 1562520574.R14957473799001087079.notebook:2,S
│   │   ├── 1562520760.R6763992453627636914.notebook:2,S
│   │   └── 1562520772.R1709183417940068172.notebook:2,RS
│   ├── new
│   └── tmp
├── Job
│   ├── cur
│   ├── new
│   └── tmp
├── postponed
│   ├── cur
│   ├── new
│   └── tmp
├── sent
│   ├── cur
│   │   ├── 1562519057.R11840993877962342247.notebook:2,S
│   │   └── 1562582534.R14704903298050425199.notebook:2,S
│   ├── new
│   └── tmp
└─── yahoo
├── cur
│   ├── 1562180439.M52818P13145Q0R572e332a6a8991eb.notebook:2,RS
│   ├── 1562333758.M985882P18564Q0R436ffca9522cbb2e.notebook:2,S
│   ├── 1562333762.M373281P18568Q2R3ae771006127d622.notebook:2,S
│   ├── 1562333763.M273938P18569Q3Recba8f766d00c74c.notebook:2,S
│   ├── 1562333765.M135745P18571Q4Rb57a3bb11a9d9046.notebook:2,S
│   ├── 1562336319.R6411631296372496960.notebook:2,S
│   ├── 1562508899.M348571P21494Q2Rf97585630f3f9520.notebook:2,S
│   ├── 1562574770.M878921P20142Q0R9bde17cf39e02791.notebook:2,S
│   └── 1562574773.M709425P20144Q1R0613870e5016c0ec.notebook:2,S
├── new
└── tmp

А теперь над чем я бьюсь вторые сутки:

procmail

Вот его конфигурация:

# .procmailrc - конфиг для procmail
# Переменные
#
MAILDIR=$HOME/.mail # каталог с почтой
LOGFILE=$HOME/procmail.log # лог для записи всех операций
#DEFAULT=$HOME/.mail/NonSorted # файл для не отсортированных сообщений
SH=/bin/bash
#
# Upon debugging, you want verbose, you make it yes
VERBOSE=yes
#LOGABSTRACT=all
##
## PGP processing
# f - filter the message through an external program. Procmail discards the existing message and replaces it with the output of the program.
# Excellent for adding or removing headers, often with the formail program that is included with Procmail. This is not a delivering recipe as it only modifies the message.
# B - egrep the body for the conditions listed below
# W - wait for the external program to finish. (Including it is a good idea when when using h, b, or f.)
# ---------
# H - egrep the header for the conditions listed below. This is the default unless other flags are specified.
# D - tell egrep to be case sensitive. (By default it is case insensitive, which is usually what you want.)
# h - pipe the header to an external program
# b - pipe the body to an external program
##
:0
* !^Content-Type: message/
* !^Content-Type: multipart/
* !^Content-Type: application/pgp
{
:0 fBw
* ^-----BEGIN PGP MESSAGE-----
* ^-----END PGP MESSAGE-----
| formail \
-i "Content-Type: application/pgp; format=text; x-action=encrypt"

:0 fBw
* ^-----BEGIN PGP SIGNED MESSAGE-----
* ^-----BEGIN PGP SIGNATURE-----
* ^-----END PGP SIGNATURE-----
| formail \
-i "Content-Type: application/pgp; format=text; x-action=sign"
}
#
# Правила сортировки почты
#

Вот как я его запускаю:

procmail < ~/.mail/

пробовал и вот так:

procmail < ~/.mail/yahoo

пробовал и вот так

procmail < ~/.mail/yahoo/new

Вот какой лог он мне выдает

procmail: [2363] Mon Jul 8 15:09:47 2019
procmail: Match on ! "^Content-Type: message/"
procmail: Match on ! "^Content-Type: multipart/"
procmail: Match on ! "^Content-Type: application/pgp"
procmail: No match on "^-----BEGIN PGP MESSAGE-----"
procmail: No match on "^-----BEGIN PGP SIGNED MESSAGE-----"
procmail: Locking "/var/mail/alex.lock"
procmail: Assigning "LASTFOLDER=/var/mail/alex"
procmail: Opening "/var/mail/alex"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/mail/alex.lock"
procmail: Notified comsat: "alex@4:/var/mail/alex"
Folder: /var/mail/alex

При этом я же вижу:

~/.mail/yahoo/cur $ cat 1562574770.M878921P20142Q0R9bde17cf39e02791.notebook:2,S| grep "BEGIN PGP MESSAGE"
-----BEGIN PGP MESSAGE-----

-----BEGIN PGP MESSAGE-----

cat 1562574770.M878921P20142Q0R9bde17cf39e02791.notebook:2,S| grep "END PGP MESSAGE"
-----END PGP MESSAGE-----
-----END PGP MESSAGE-----

Вот кусок текста сообщения, о котором речь: 

--0000000000006addfe058d220578
Content-Type: text/plain; charset="UTF-8"

-----BEGIN PGP MESSAGE-----
Version: Mailvelope v3.2.0
Comment: https://www.mailvelope.com



Какого хрена, а? Чего ему не хватает? Я уже протер гугль до дыр, скопировал все возможные и невозможные варианты, и туплю: 

Мои проблемы: 

1. procmail не ловит сообщения с фильтром указанным выше. (это необходимо для PGP-сообщений, которые сделаны не по фэн-шую отправителем). 

2. Я не могу отловить НИ ОДНОГО сообщения, которое попадает вот под такое правило: 

:0 Hw
* ^From.*ebay.de.*
Ecommerce

или вот такое: 

:0
* ^From.*ebay.de.*
Ecommerce

или вот такое: 

:0 Hw
* ^.*[Ff]rom: name.lastname@gmail.com
UserNameBox


При этом это известная уважаемая программа, то есть явно проблема на моей стороне, кто-нибудь понимает, что я делаю не так? 

Спасибо большое заранее_ потому что у меня варианты уже тупо закончились, я не знаю как еще извратиться и что еще сделать. 

Апдейт:

прямое исполнение вот такой команды прямо из каталога входящей почты:

~/.mail/yahoo/cur $ cat * | formail -s procmail

Дало вот такой результат:

procmail: [4971] Mon Jul 8 15:58:04 2019
procmail: Match on ! "^Content-Type: message/"
procmail: Match on ! "^Content-Type: multipart/"
procmail: Match on ! "^Content-Type: application/pgp"
procmail: Match on "^-----BEGIN PGP MESSAGE-----"
procmail: Match on "^-----END PGP MESSAGE-----"
procmail: Executing " formail \
-i "Content-Type: application/pgp; format=text; x-action=encrypt""
procmail: No match on "^-----BEGIN PGP SIGNED MESSAGE-----"
procmail: No match on "^From.*ebay.de.*"
procmail: Locking "/var/mail/alex.lock"
procmail: Assigning "LASTFOLDER=/var/mail/alex"
procmail: Opening "/var/mail/alex"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/mail/alex.lock"
procmail: Notified comsat: "alex@9:/var/mail/alex"
From me@amironov.com Mon Jul 8 15:58:04 2019
Subject: test subject
Folder: /var/mail/alex 438968

Но сильно легче не стало: да, оно отлавливает сообщения, попадающие под маску, но почему:

1. Только при исполнении в каталоге cur текущего почтового ящика?

2. Не выполняется изменение тела сообщения? Вот это:

procmail: Executing " formail \
-i "Content-Type: application/pgp; format=text; x-action=encrypt""

не оказывает никакого влияния на тело письма. Я ожидаю, что после этого появятся правильные описатели письма и оно будет распознаваться mutt'ом как нормальное PGP-письмо

> Вот как я его

> Вот как я его запускаю: procmail < ~/.mail/

Не правильно! procmail требует на входе один файл с мылом внутри, а ты ему скармливаешь мэйлбокс целиком.

Почти

Почти правильно - явное указание формата хранения почты спасло тебя.

Оставляя за скобками вопрос о том, зачем тебе внешние getmail и msmtp - сам mutt всё это умеет,

folder - корневая папка;
spoolfile - подпапка или внешняя папка, содержимое которой показывается при старте mutt по умолчанию. Шорткат "!";
header_cache - это нужно, если ты получаешь почту с сервера по вялой сети самим mutt'ом. В твоём случае - не нужно;
mailboxes - список подпапок или внешних папок через пробел, которые будут тебе доступны с помощью шорткатов, содержимое которых будет мониториться на предмет новых писем и которые будут показываться на левой панели (если эта опция у тебя скомпилирована).

Так, мужчина,

Так, мужчина, стоять, вы мне и нужны. Вы и про сортировщик наверняка знаете, и ещё пару интересных вещей. Я напишу вам роман.

Пишите же.

Пишите же. Пишите в стихах!

Может и знаю.

P.S. Добрая фея ушла развлекаться с эльфами. Сегодня я за неё.

Зам. доброй феи,

Зам. доброй феи, сегодня у меня дурдом лютый, в субботу и воскресенье я планирую этим заниматься.

Меня интересуют такие вещи как работа с несколькими аккаунтами (я прочитал про hooks, но мало что понял), сортировка входящего потока писем по индивидуальным ящикам, настройка чтения писем в html формате.

Можем с тобой слиться в экстазе на эту тему? Если да, стукнись пожалуйста в Ватсапп, на тему того, когда тебе удобно.

Спасибо.

Что-то могу

Что-то могу прямо сейчас сказать:

Несколько аккаунтов - с точки зрения чтения, всё просто - сервер это просто внешняя папка. Если указать её в списке "mailboxes" ты получишь все это добро. Типа так:
[mailboxes pops://user1:password1@popserver1.com:port imaps://user2:password2@imapserver2.com:port]
и так далее. Тут основная проблема, что количество зарезервированных имён mailboxes ограничено, а вбивать каждый раз в командной строке длинную колбасу "imaps://user2..." не очень удобно. На этот счёт существует множество решений: хуки, алиасы для мэйлбоксов, sidebar слева. Я пользуюсь sidebar.
Для отправки через разные сервера нужен соответствующий хук.

html читается просто - в "/etc/mailcap" прописать строку "text/html; /usr/bin/w3m -dump -T text/html %s; copiousoutput". w3m, понятно дело должен быть в системе

Никаких имап: я

Никаких имап: я хочу иметь почту локально, только локально и никак иначе. Меня смущают следующие вещи:

1. Твой (например) именной каталог должен находиться на том же уровне, что и inbox
2. Не поддерживается вложенность каталогов. Нельзя сделать вот так:

\yahoo
!
\friends
!
\KKK
!
\Shved

И так далее. Все ящики должны "жить" на одном уровне и в сайдбаре отображаются списком, а не деревом.

> Никаких

> Никаких имап
Какая разница? Это всего лишь протокол. Хочешь - скачивай, хочешь - оставляй на сервере. Дело хозяйское.

>ящики должны "жить" на одном уровне
Тем проще.

Я с procmail не особо фамильярен. Но я вижу, он у тебя лезет в
...
procmail: Assigning "LASTFOLDER=/var/mail/alex"
procmail: Opening "/var/mail/alex"

Позволю себе предположить, это не то место, где лежит твоя почта.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.