Déplacement des mails vers GMail

Afin de transférer mes anciens mails concernant les logiciels libres sur mon compte GMail, j’ai fait un petit script. Histoire de faire d’une pierre deux coûps, j’ai fait ce script en Ruby.

Ce script fonctionne chez moi, c’est à dire qu’il fonctionne pour les mails gérés dans une MH box et il utilise le serveur SMTP de ma machine.

Le principe de ce script se base sur les champs Resent-* décrits dans la RFC 2822.

require 'net/smtp'  
require 'rmail'

#resender  = 'guilhem.bonnefille@free.fr'  
#recipient = 'guilhem.bonnefille@gmail.com'

# Suppress initial "From" line  
$stdin.gets

# Read the message  
message = RMail::Parser.read($stdin)

message.header.add('Resent-To', recipient, 0)  
message.header.add('Resent-From', resender, 0)  
time = Time.now  
message.header.add('Resent-Date', time.to_s, 0)

Net::SMTP.start('localhost', 25) do |smtp|  
smtp.send_message message.to_s,  
resender,  
recipient  
end

Pensez à décommenter les deux lignes qui précisent qui envoie à qui.

Pour l’instant, il est rudimentaire dans la mesure où il faut lui donner le message sur l’entrée standard.

Exemple : ruby resent.rb < ~/Mail/inbox/255