imapfilter: как захватить часть объекта в переменной
Я получаю несколько писем, приходящих (на сервер IMAP) с темой вроде:
[1270503] яблоко [1272481] бутылка [172481] вино [43172481] виноград
Мне нужно, чтобы эти письма были перемещены в INBOX.CSR.число, где число - это тот, который стоит в "[]" в теме. Почтовый ящик должен быть создан, если он не существует.
Поскольку я не знаком с языком программирования LUA, мне сложно настроить imapfilter ( http://imapfilter.hellug.gr/) для этого.
update1: мне нужно переставить буквы в папках учетной записи IMAP. Файловые операции невозможны.
2 ответа
Решение
Поскольку никто не придумал идею, мне пришлось углубиться в язык программирования LUA.
Ответ здесь, если позже кто-то найдет себя в такой ситуации:
options.timeout = 120 options.subscribe = true localhost = IMAP { сервер = 'ipaddress', username = 'username', пароль = "пароль", } смс =localhost.CSR: SELECT_ALL () если (смс ~= ноль) затем subject =localhost.CSR:fetch_fields({ 'subject' }, смс) если (предметы ~= ноль) затем для сообщения, тема в парах (предметы) делать локальный успех, csrnumber = regex_search('^ Тема: \\[([0-9]+)\\] ', тема) если успех затем локальный:create_mailbox('CSR'.. csrnumber) локальный:subscribe_mailbox('CSR'..csrnumber) local tmp = {} TMP [MessageId]= истина localhost.CSR:move_messages(localhost['CSR.'..csrnumber], tmp) конец конец конец конец
Думали ли вы использовать procmail, procmail принимает расширенные регулярные выражения egrep.