Skip to content

Instantly share code, notes, and snippets.

@fabioadrianosoares
Created December 5, 2012 14:02
Show Gist options
  • Save fabioadrianosoares/4215725 to your computer and use it in GitHub Desktop.
Save fabioadrianosoares/4215725 to your computer and use it in GitHub Desktop.
Ler mensagem de email
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
use File::Slurp;
use Email::Simple;
sub message_text {
message_seek (@_, 'plain');
}
sub message_html {
message_seek (@_, 'html');
}
sub message_seek {
my ($parsed, $type) = @_;
for my $part ($parsed->parts) {
if ($part->{ct}->{discrete} eq 'text' && $part->{ct}->{composite} eq $type) {
return $part->body;
}
}
for my $part ($parsed->parts) {
if ($part->{ct}->{discrete} eq 'multipart') {
for my $part2 ($part->parts) {
if ($part2->{ct}->{discrete} eq 'text' && $part2->{ct}->{composite} eq $type) {
return $part2->body;
}
}
}
}
return '';
}
sub main {
my $text = read_file( '005.eml' ) ;
use Email::MIME;
my $parsed = Email::MIME->new($text);
say 'From: ' . $parsed->header('from');
say 'To: ' . $parsed->header('to');
say 'Subject: ' . $parsed->header('Subject');
say 'Data: ' . $parsed->header('Date');
say 'Mensagem text: ' . "\n" . '='x60 . "\n" . '='x60 . "\n" . message_text($parsed);
say '='x60 . "\n" . '='x60;
say 'Mensagem html: ' . "\n" . '='x60 . "\n" . '='x60 . "\n" . message_html($parsed);
say '='x60 . "\n" . '='x60;
}
main;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment