Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I get some mails arriving (on an IMAP server) with subject like:

[1270503] apple
[1272481] bottle
[172481] wine
[43172481] grapes

I need these letters to be moved in INBOX.CSR.number where number is the one standing in "[ ]" s in the subject. The mailbox shall be created, if does not exists.

Since I'm not familiar with LUA programming language, I find difficult setting up imapfilter ( to do this.

update1: i need to rearrange the letters on the IMAP account folders. No file operations possible.

share|improve this question
up vote 2 down vote accepted

Since no-one has came up with an idea, I had to get deeper in LUA programming language.

The answer is here if later someone finds him/herself in a situation like this:

options.timeout = 120
options.subscribe = true

localhost = IMAP {
    server = 'ipaddress',
    username = 'username',
    password = 'password',

if (sms ~= nil)
   subjects=localhost.CSR:fetch_fields({ 'subject' }, sms)
    if (subjects ~= nil)
    	for messageid, subject in pairs(subjects) 
    		local success, csrnumber = regex_search('^Subject: \\[([0-9]+)\\] ', subject)
    	if success 
    			local tmp = {}
    			localhost.CSR:move_messages(localhost['CSR.'..csrnumber], tmp)
share|improve this answer

Did you think to use procmail, procmail accepts egrep extended regular expressions.

share|improve this answer
thanks, but procmail is not a solution: I need to rearrange an IMAP account, procmail is only able to download them and sort, but not on the imap account. – asdmin Aug 4 '09 at 10:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.