hotti: Die Mail-Datei der Zukunft

Beitrag lesen

  
use strict;  
use warnings;  
use IO::File;  
use Data::Dumper;  
use 5.010;  
use Storable qw(freeze thaw);  
  
# Prepare Attachment  
my $gif_binary = do{  
    my $fh = IO::File->new;  
    $fh->open('red.gif', O_RDONLY|O_BINARY) or die $!;  
    read($fh, my $buffer, -s $fh);  
    $fh->close;  
    $buffer;  
};  
  
# Einheitliche Datenstruktur  
my $mail = [  
    {  
        role => 'header',  
        mta => 'localhost',  
        mesgid => 123456789,  
        date => scalar localtime,  
    },  
    {  
        role => 'header',  
        from => 'hugo@example.org',  
        to   => 'lupo@example.com',  
        subject => 'Multi-Media-Mail'  
    },  
    {  
        role => 'part',  
        type => 'text/plain; Charset=UTF-8',  
        body => 'Inhalt der Nachricht als Text'  
    },  
    {  
        role => 'part',  
        type => 'image/gif',  
        body => $gif_binary,  
        label => 'Ein bischen Grafik',  
        filename => 'red.gif'  
    }  
];  
  
# Serialize  
my $file = freeze($mail);  
# Übertragung: Jeder MTA fügt am Anfang der Datei einen Block mit role => 'header' hinzu  
# Dieser Block hat eine variable Länge und kann beliebige Informationen enthalten  
# Z.B. den Return-Path  
  
# Deserialize  
# Das macht der Mailclient nach der Übertragung  
say Dumper thaw($file);  
  

Am Anfang steht immer die Idee: Weniger Overhead, kleine Bandbreiten und ein gemeinsamer Standard für SMS, MMS, Mail. Diesbezügliche Gremien gibt es (z.B. 3GPP, OMA usw.), die müssten nur mal richtig miteinander reden ;)