LINUX.ORG.RU
ФорумAdmin

mutt multi ?

 multiaccount,


0

1
folder-hook '.' 'source ~/.mutt/default.accounts
folder-hook 'box@example.com' 'source ~/.mutt/box@example.com.config'
folder-hook 'box@example.ru' 'source ~/.mutt/box@example.ru.config'
account-hook 'box@example.com' 'set imap_user=user imap_pass=pass'
account-hook 'box@example.ru' 'set imap_user=user imap_pass=pass'
macro index <f2> '<change-folder>imaps://box@imap.example.com:993<enter>'
macro index <f3> '<change-folder>imaps://box@imap.example.ru:993<enter>'

Жмем <f3> подключаемся к ящику «box@imap.example.ru» Далее... Жмем <f2> подключаемся к ящику «box@imap.example.com». Затем сразу вижу попытку в статусе mutt с логином <f3> подключиться к ящику <f2>.

Это поведение хочется поправить. Он не должен пытаться использовать предыдущий ящик.

mord0d

★★★★★

Я ж писал, что не пользуюсь встроенным IMAP. ☺

macro index <f2> '<change-folder>imaps://box@imap.example.com:993<enter>'

imaps://box@imap.example.com:993 — это не folder (хоть оно тебя автоматом должно перекидывать в =INBOX). По причине прозрачного редиректа в imaps://box@imap.example.com:993/INBOX твой folder-hook мог не сработать. Но это пальцем в небо, я последний раз функционал IMAP в Mutt (не в NeoMutt даже) тыкал лет десять назад.

mord0d ★★★★★
()
Ответ на: комментарий от petav

А сможете конф. показать. Я бы изучил.

Отправил на почту. Если что не понятно, могу ответить здесь или на почту.

mord0d ★★★★★
()
Ответ на: комментарий от petav

Не получил

На этом сервисе такое случается впервые. В спам попадало у всяких майлрушечек, но чтобы не дошло — это первый раз.

smtpstatus=250 exitcode=EX_OK

Проблема не на нашей с Винсом стороне. ☺

Почистил от личной инфы (всё равно деанон), выкладываю в общий доступ.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Так выглядит sidebar. Концепт удобно, нежели переключаться между аккаунтами по <f2> или <f3>

local/inbox          (0/0)│ 
local/postponed      (0/0)│ 
local/sent           (0/0)│ 
local/trash          (0/0)│ 
user1/INBOX          (0/0)│ 
user1/Archive        (0/0)│ 
user1/Junk           (0/0)│ 
user1/Postponed      (0/0)│ 
user1/Sent           (0/0)│ 
user1/Trash          (0/0)│ 
/var/mail/mord0d     (0/0)│

Возможно под <f2> соберу work почту, под <f3> личные ящики

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

удобно, нежели переключаться между аккаунтами по или

У меня в глобальных макросах переключение аккаунтов через g<CapitalLetter>, sidebar использую только для счётчиков. ☺

Вообще, sidebar обычно используют для навигации по активному аккаунту, но когда кажет все ящики, это гораздо удобнее (видно новую почту в других ящиках).

mord0d ★★★★★
()
Ответ на: комментарий от petav

Отправил на почту

Не получил

UPD: Используемый мной почтовый сервис нишмок:

Reporting-MTA: dns; <MY_SMTP>
X-Postfix-Queue-ID: A7CE11226FB
X-Postfix-Sender: rfc822; <MY_EMAIL>
Arrival-Date: Thu, 27 Aug 2020 16:18:26 +0000 (UTC)

Final-Recipient: rfc822; <YOUR_EMAIL>
Original-Recipient: rfc822;<YOUR_EMAIL>
Action: failed
Status: 4.4.1
Diagnostic-Code: X-Postfix; connect to <YOUR_HOST>[YOUR_IP]:25: Connection timed out

Такие дела. ☺

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

mutt запущен в окне term. Вижу что новая почта пришла

find  ~/Mail/*/INBOX/new/* -maxdepth 1   -name "*" -exec sh -c 'f="{}"; echo $f ' \;

Но mutt скажет об этом в интерфейсе только после щелчка в интерфейсе.

cat ~/.mutt/neomuttrc |grep check
set mail_check = 3
set mail_check_recent = no
set mail_check_stats = yes
set mail_check_stats_interval = 3
set maildir_check_cur = yes

Осведомлюсь соответственно тоже после щелчка в интерфейсе того как это уже не актуально

cat ~/.mutt/neomuttrc |grep new_mail_command
set new_mail_command = "awesome-client 'require(\"naughty\").notify { text=\"New Email in %f %n new messages, %u unread\", title=\"Neomutt\", timeout=10, icon=\"/home/petav/.mutt/mutt-48x48.png\" }'&& aplay -d 5 /home/petav/.mutt/sounds/newmail.wav > /dev/null 2>&1"

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Но mutt скажет об этом в интерфейсе только после щелчка в интерфейсе.

Потому что обновление интерфейса происходит только по событию.

awesome-client

Вот мой виджет почты, работающий по таймеру (но он не занимается забором почты, только отображением счётчиков уже собранной).

mord0d ★★★★★
()
Ответ на: комментарий от petav

Да он не причем.

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

Устранил ошибку

Отлично, но теперь отправлять нечего. ☺

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Вот мой виджет почты, работающий по таймеру (но он не занимается забором почты, только отображением счётчиков уже собранной).

Пробую!

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Там используются две функции из моих же хелперов.

  • str_to_tbl:
function str_to_tbl(str)
	if not str then return nil end
	local tbl = {}
	local pattern = string.format("([^%s]+)", "\n")
	str:gsub(pattern, function(line) tbl[#tbl+1] = line end)
	return tbl
end
  • icon_text:
local theme = require("beautiful").get()
local wwidget = require("wibox.widget")
local wlayout = require("wibox.layout")
local wcontainer = require("wibox.container")
function icon_text(icon, text)
	return wwidget { layout = wlayout.fixed.horizontal, spacing = 4,
		{ widget = wwidget.imagebox, id = icon, resize = false },
		{ layout = wcontainer.constraint, strategy = "exact", height = 32,
			{ widget = wwidget.textbox, id = text, font = (theme.widget_font or theme.font),
				valign = "center", align = "left", ellipsize = "end", wrap = "word"
			}
		}
	}
end
mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Там используются две функции из моих же хелперов.

Как раз воткнулся в это. Спасибо.

petav ★★★★★
() автор топика
Ответ на: комментарий от mord0d

а еще «gears.filesystem» нет

petav@c277:~$ ls /usr/share/awesome/lib/gears
cache.lua  debug.lua     init.lua    object      protected_call.lua  surface.lua  wallpaper.lua
color.lua  geometry.lua  matrix.lua  object.lua  shape.lua           timer.lua

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

awesome --version? У меня из master:

awesome v4.3-856-ge7113d71 (Too long)
 • Compiled against Lua 5.2.4 (running with Lua 5.2)
 • API level: 4
 • D-Bus support: yes
 • xcb-errors support: yes
 • execinfo support: yes
 • xcb-randr version: 1.6
 • LGI version: 0.9.2
 • Transparency enabled: yes
 • Custom search paths: no

Вот gears.filesystem из этого коммита.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d
# awesome --version
awesome v4.0 (Harder, Better, Faster, Stronger)
 • Compiled against Lua 5.1.5 (running with Lua 5.1)
 • D-Bus support: ✔
 • execinfo support: ✔
 • RandR 1.5 support: ✔
 • LGI version: 0.9.1
petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Честно говоря уже не помню, было ли в релизе 4.3 gears.filesystem (github у меня роняет qtwebengine последние несколько дней, пока руки не дошли пофиксить), но в любом случае можно накостылять на io.popen() (раньше у меня так и было).

mord0d ★★★★★
()
Ответ на: комментарий от petav

Скрипт достаточно подключить или вызвать нужно с указанием папки?

Функция жрёт таблицу:

{
  maildir = os.getenv("HOME") .. "/.mail",
  mbox = "/var/mail/" .. os.getenv("LOGNAME"), -- '/var/mail/mord0d'
  show_text = true -- если 'false', то будет показывать только иконку
}

В начале таблицы проверка на наличие аргументов есть.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

rc.lua

local maildir = require("maildir_new")
maildir ({
  maildir = os.getenv("HOME") .. "/Mail",
  mbox = "/var/mail/" .. os.getenv("LOGNAME"), -- '/var/mail/mord0d'
  show_text = true -- если 'false', то будет показывать только иконку
})

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Ответ на: rc.lua от petav

У меня так:

local mail_args = { maildir = os.getenv("HOME") .. "/.mail",
  mbox = "/var/mail/" .. os.getenv("LOGNAME"),
  show_text = true }

local mail_widget = require("widgets.mail")

mail_widget(mail_args)

Если не назначать переменную mbox, то счётчик для локальной почты показываться не будет (актуально, если локальная почта не настроена или не используется). То же актуально для maildir, но виджет не подразумевает неиспользование обоих.

Ну и в Linux вместо $LOGNAME используется переменная $USER.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Ok. Подключил. Ошибок нет. Не показывает. На досуге проведу debug.

petav ★★★★★
() автор топика
Ответ на: комментарий от mord0d

mbsync. Локальный maildir. HDD 5000 Rpm. При каждом переходе/возвращении в ящик читаются все ~36000 писем, что занимает время. Можно читать последние N штук, а остальное по «необходимости»?

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

При каждом переходе/возвращении в ящик читаются все ~36000 писем

Mutt/NeoMutt при переходе в папку читают только хедеры писем в папке.

что занимает время

Ну, ≈3.6K — это немало. Я в =INBOX не храню больше сотни, оставляю там только важные или неотвеченные, остальное переношу в =archive, чтобы не мешались.

Можно читать последние N штук, а остальное по «необходимости»?

К сожалению нет.

Поэтому я переношу прочитанную почту в =archive, поиском по которому занимается notmuch. Он ищет очень быстро.

С такими вопросами лучше сходить на github проекта neomutt или в #neomutt в IRC на FreeNode, они пилят нужные вещи, а такая хотелка очень даже полезна.

mord0d ★★★★★
()

Смешно все это. Я пользую мутю для связи почтовика с мной любимым.Типа отчетов. И удивился. ктото Его чемто...

Bootmen ☆☆☆
()
Ответ на: комментарий от mord0d

нажатие "gi" всегда уводит в один и тот же ящик

10 учетных записей наподобие:

root@c277:/home/petav/.config/mailconfig/neomutt/accounts/box.example.ru# cat macros 
macro index gi "<change-folder>+box.example.ru/INBOX<enter>" "=inbox"
macro index gs "<change-folder>+v.v.ru/Sent<enter>" "=sent"
macro index gt "<change-folder>+box.example.ru/Trash<enter>" "=trash"
macro index gp "<change-folder>+box.example.ru/Postponed<enter>" "=drafts"
#macro index gj "<change-folder>+box.example.ru/junk<enter>" "=junk"
#macro index ga "<change-folder>+box.example.ru/Archive<enter>" "=archive"
macro index D "<save-message>+box.example.ru/trash<enter>" "Move message to archive"
macro index O "<shell-escape>mbsync -q box.example.ru<enter>" "Sync all mail"

Нахожусь к примеру в «=box2.example.ru/INBOX» или любом другом «=box<N>/example.ru/<FolderName>». но, нажатие «gi» всегда ведет в один и тот же ящик (=box.example.ru/INBOX) так же, нажатие «D» пытается переместить сообщение в Trash в один и тот же ящик (=box.example.ru/Trash)

petav ★★★★★
() автор топика

нажатие «gi» всегда уводит в один и тот же ящик

Макрос с gi должен быть в каждом аккаунте:

macro index gi "<change-folder>+account/INBOX<enter>" "=inbox"

Где +account/INBOX (или =account/INBOX, как больше нравится) — это ~/Mail/account/INBOX.

Если в каком-то аккаунте макроса нет, он будет использован из предыдущего (если нет явного unmacro).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Макрос с gi должен быть в каждом аккаунте:
Если в каком-то аккаунте макроса нет, он будет использован из предыдущего

Ok. Это выполняется. Все перекрывается

Описанное в нажатие «gi» всегда уводит в один и тот же ящик проявляется, если действовать «кнопками»

petav@c277:~/.config/mailconfig/neomutt$ cat sidebar |grep bind
bind index,pager \CB sidebar-toggle-visible
bind index,pager \CP sidebar-prev
bind index,pager \CN sidebar-next
bind index,pager \CO sidebar-open
petav@c277:~/.config/mailconfig/neomutt$

или «с» и писать =....

Если переходит в папки используя

petav@c277:~/.config/mailconfig/neomutt/accounts$ cat macros 
macro index gA "<sync-mailbox><enter-command>source ~/.config/mailconfig/neomutt/accounts/box.example.ru/main<enter><change-folder>!<enter>" "switch account to “box.example.ru”"
macro index gB "<sync-mailbox><enter-command>source ~/.config/mailconfig/neomutt/accounts/box2.example.ru/main<enter><change-folder>!<enter>" "switch account to “box2.example.ru”"
macro index gL "<sync-mailbox><enter-command>source ~/.config/mailconfig/neomutt/accounts/local/main<enter><change-folder>!<enter>" "switch account to “local”"
"

# vim: ft=neomuttrc
petav@c277:~/.config/mailconfig/neomutt/accounts$
то все норм!

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от petav

Описанное в нажатие «gi» всегда уводит в один и тот же ящик проявляется, если действовать «кнопками»

sidebar

Подозреваю что при переходе средствами sidebar в другой аккаунт не срабатывает folder-hook.

Я не пользуюсь хоткеями sidebar для навигации, sidebar у меня только для счётчиков и визуализации новой почты в другом аккаунте (поэтому оно у меня показывает сразу все аккаунты).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Подозреваю что при переходе средствами sidebar в другой аккаунт не срабатывает folder-hook.

Думаю, да!

Я не пользуюсь хоткеями sidebar для навигации, sidebar у меня только для счётчиков и визуализации новой почты в другом аккаунте (поэтому оно у меня показывает сразу все аккаунты).

С возможностями mutt ознакомился. Размышляю как мне удобнее будет. Чинить/не чинить.

petav ★★★★★
() автор топика
Ответ на: комментарий от mord0d

Подозреваю что при переходе средствами sidebar в другой аккаунт не срабатывает folder-hook.

Все верно. Но ошибка моя. Было (пропустил ключевое слово «source»):

petav@c277:~/.config/mailconfig/neomutt/accounts$ cat hooks |grep box.example.ru
folder-hook box.example.ru/* ~/.config/mailconfig/neomutt/accounts/box.example.ru/main
petav@c277:~/.config/mailconfig/neomutt/accounts$
Стало:
petav@c277:~/.config/mailconfig/neomutt/accounts$ cat hooks |grep box.example.ru
folder-hook box.example.ru/* source ~/.config/mailconfig/neomutt/accounts/box.example.ru/main
petav@c277:~/.config/mailconfig/neomutt/accounts$

работает!

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от mord0d

Формирую mailboxes

petav@c277:~/.config/mailconfig/neomutt/accounts$ cat main
set folder = ~/Mail
unmailboxes *
mailboxes \
        `find ~/Mail/* -maxdepth 1 -type d -name "*" | awk -F/ '{print "=" $5 "/" $6}' | grep -v "/$" | tr '\n' ' '` \
        /var/mail/petav
source ~/.config/mailconfig/neomutt/accounts/box.example.ru/main

# vim: ft=neomuttrc
petav@c277:~/.config/mailconfig/neomutt/accounts$

petav@c277:~/.config/mailconfig/neomutt/accounts$ find ~/Mail/* -maxdepth 1 -type d -name "*" | awk -F/ '{print "=" $5 "/" $6}' | grep -v "/$" | tr '\n' ' '
=box.example.ru/Trash =box.example.ru/Sent =box.example.ru.ru/INBOX  petav@c277:~/.config/mailconfig/neomutt/accounts$

Выглядит это так в sidebar

box.example.ru/INBOX    (0/1162)│
box.example.ru/Sent      (0/917)│
box.example.ru/Trash     (0/373)│

Хочется сделать (к примеру) так

box.example.ru ---- │
  /INBOX    (0/1162)│
  /Sent      (0/917)│
  /Trash     (0/373)│

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Хочется сделать (к примеру) так

Мне тоже хочется. ☺ Но технически это невозможно: маилбоксы (mbox, maildir) могут быть вложенными.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Smart Folder

А как бы организовать «Smart Folder»?

SmartFolder          (7/0)│
local/inbox          (4/0)│ 
local/postponed      (0/0)│ 
local/sent           (0/0)│ 
local/trash          (0/0)│ 
user1/INBOX          (3/0)│ 
user1/Archive        (0/0)│ 
user1/Junk           (0/0)│ 
user1/Postponed      (0/0)│ 
user1/Sent           (0/0)│ 
user1/Trash          (0/0)│ 
/var/mail/mord0d     (0/0)│ 
Все сообщения за последние N day ото всех аккаунтов собирать в под именем SmartFolder. Все новые сообщения вверху. Отвечать с того ящика на который письмо пришло.

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Ответ на: Smart Folder от petav

Беглый поиск по neomuttrc(5) ничего не дал (virtual-mailboxes), я таким никогда не пользовался (это похоже на то что у гугла, мне такое не зашло).

mord0d ★★★★★
()
28 мая 2022 г.
Ответ на: комментарий от mord0d

Привет, а можешь перевыложить конфиги и виджет или кинуть в профильную почту? Мне бы очень помогло. Спасибо!

aka_slon
()
Ответ на: комментарий от aka_slon

Афигеть ты негропостер! /ö\

Я уже не помню что я выкладывал… Конфиг чего? (neo)mutt?

Какой виджет?

И да, у тебя в профиле нет почты. Та, на которую ты регистрировал аккаунт на ЛОРе, видна только тебе и модераторам. Здесь могу выложить, потому что моя почта уже давно недоступна для меня.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от mord0d

Афигеть ты негропостер! /ö\

сорямба, но так уж вышло )

Конфиг чего? (neo)mutt?

да, его самого. а виджет - ты писал, что есть(был) виджет для awesome на lua, который показывал количество писем.

И да, у тебя в профиле нет почты.

это да, мой продолб, забыл, что ее не видно. можно послать на akaslon собака mail тчк ru

Здесь могу выложить, потому что моя почта уже давно недоступна для меня.

было бы здорово, буду сильно благодарен

aka_slon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.