#!/usr/bin/perl use strict; use IO::All; use Email::MIME; use Net::Delicious; use Data::Dumper; #my $file = 'sample2.eml'; my $message = read_in(); my $parsed = parse_message($message); send_to_delicious($parsed); sub send_to_delicious { my $parsed = shift; if ($parsed->{url} and $parsed->{description}) { my $del = Net::Delicious->new({user => "foo", pswd => "bar"}); $del->add_post($parsed); } } sub read_in { my $msg = ''; while (my $line = ) { $msg .= $line; } return $msg; } sub parse_message { $message = shift; my $mime = Email::MIME->new($message); my @parts = $mime->parts; my $parsed = {}; unless ($parts[1]) { return $parsed; } $parsed->{description} = $mime->header('Subject'); my $html_body = $parts[1]->body; $html_body =~ s/
/\n/g; if ($html_body =~ m/^t(ags)?\:(.+)/) { $parsed->{tags} = $2; } if ($html_body =~ m/^n(ote)?:(.+)/) { $parsed->{extended} = $2; } if ($html_body =~ m/

/) { if ($html_body =~ m/href="([^"]+)/) { $parsed->{url} = $1; } } return $parsed; }