Repair headers with envelope via offlineimap
K. Grishnak
henne.gwath at gmx.de
Sat Mar 10 17:00:51 GMT 2012
Hi there,
The solution to my problem of the missing HEADER lines (Date,Subject)
only stored in the ENVELOPE part of the mail was ruby.
There is a ruby-script called larch which works similar to offlineimap.
I added a small function in the file imap/mailbox.rb about line 132 of
that file to repair the broken mail (which is the sent mail). In ruby
accessing the envelope seemed to be much easier than in python. The
function looks like this:
# function, which repairs broken headers of sent mail
def repair(envelope, body)
# condition: assume mail is broken if "Date:" is missing
if body=~ /Date:/
return body
else
newbody = [
"From: #{envelope.from[0].name}
<#{envelope.from[0].mailbox}@#{envelope.from[0].host}>",
"Date: #{envelope.date}",
"Subject: #{envelope.subject}",
"#{body}"
].join("\r\n")
return newbody
end
end
In the fetch-function I added:
newbody = repair(data.attr['ENVELOPE'], data.attr['BODY[]'])
and used it consequently
return Message.new(guid, data.attr['ENVELOPE'], newbody,
data.attr['FLAGS'], Time.parse(data.attr['INTERNALDATE']))
If you experience a similar problem with you mail, consider ruby to
solve this.
Kind regards,
Henning
On 16.02.2012 16:55, Sebastian Spaeth wrote:
> On Mon, 13 Feb 2012 22:40:08 +0100, Henning Hollermann <henning.hollermann at stud.uni-goettingen.de> wrote:
>> Received messages are fetched correctly, but Sent messages break because
>> the FC-Server stores the Subject, Date and Sender not as Header-Line but
>> only in the ENVELOPE-Line.
>>
>> I want now to repair these Headers with the corresponding fields from
>> the Envelope with offlineimap (the only program i got to work with this
>> server). But I think I have to modify the code of offlineimap itself,
>> but I don't have a clue where to start. Could someone help me on this way?
>
> Hi there, I don't think offlineimap will be of much help here. It never
> really looks at the content of mails or headers. (with one exception)
> I think your best bet would be a small python script that walks through
> your mails, slurps them in with the "email" module, sets the header
> correspondingly and saves the mail again.
>
> good luck
> Sebastian
More information about the OfflineIMAP-project
mailing list