Я получаю несколько писем (на IMAP-сервер) с темой вроде:
[1270503] apple [1272481] bottle [172481] wine [43172481] grapes
Мне нужно, чтобы эти письма переместили в INBOX.CSR.число где число тот, кто стоит в "[]в теме. Почтовый ящик будет создан, если он не существует.
Поскольку я не знаком с языком программирования LUA, мне сложно настроить imapfilter (http://imapfilter.hellug.gr/) сделать это.
update1: мне нужно переставить буквы в папках учетной записи IMAP. Операции с файлами невозможны.
Поскольку никто не придумал идеи, мне пришлось углубиться в язык программирования LUA.
Ответ здесь, если позже кто-то окажется в такой ситуации:
options.timeout = 120 options.subscribe = true localhost = IMAP { server = 'ipaddress', username = 'username', password = 'password', } sms=localhost.CSR:select_all() if (sms ~= nil) then subjects=localhost.CSR:fetch_fields({ 'subject' }, sms) if (subjects ~= nil) then for messageid, subject in pairs(subjects) do local success, csrnumber = regex_search('^Subject: \\[([0-9]+)\\] ', subject) if success then localhost:create_mailbox('CSR.'..csrnumber) localhost:subscribe_mailbox('CSR.'..csrnumber) local tmp = {} tmp[messageid]=true localhost.CSR:move_messages(localhost['CSR.'..csrnumber], tmp) end end end end
Вы думали использовать procmail, procmail принимает расширенные регулярные выражения egrep.