[prev] [thread] [next] [lurker] [Date index for 2005/02/03]
Author: richardc Date: 2005-02-03 15:13:24 +0000 (Thu, 03 Feb 2005) New Revision: 1804 Modified: trunk/Email-Store/Makefile.PL trunk/Email-Store/lib/Email/Store/Mail.pm Log: use Email::MessageID to make better fake messageids Modified: trunk/Email-Store/Makefile.PL =================================================================== --- trunk/Email-Store/Makefile.PL 2005-02-03 15:11:00 UTC (rev 1803) +++ trunk/Email-Store/Makefile.PL 2005-02-03 15:13:24 UTC (rev 1804) @@ -8,6 +8,7 @@ Class::DBI::DATA::Schema => 0, DBD::SQLite => 0, Email::Address => 1.80, + Email::MessageID => 0, Email::MIME => 1.8, Email::MIME::Attachment::Stripper => 1.3, Email::Simple => 1.92, Modified: trunk/Email-Store/lib/Email/Store/Mail.pm =================================================================== --- trunk/Email-Store/lib/Email/Store/Mail.pm 2005-02-03 15:11:00 UTC (rev 1803) +++ trunk/Email-Store/lib/Email/Store/Mail.pm 2005-02-03 15:13:24 UTC (rev 1804) @@ -1,8 +1,7 @@ package Email::Store::Mail; +use strict; +use warnings; use base 'Email::Store::DBI'; -use Time::HiRes; -use strict; -use warnings; require Email::Store; @@ -11,9 +10,10 @@ Email::Store::Mail->columns(Primary => qw/message_id/); Email::Store::Mail->columns(TEMP => qw/simple/); use Module::Pluggable::Ordered search_path => ["Email::Store"], only => [ keys %Email::Store::only ]; - use Email::Simple; +use Email::MessageID; + sub _simple { Email::Simple->new(shift); } # RFC2822 -> Email::Simple sub simple { @@ -34,8 +34,8 @@ return $self; } - $self = $class->create ({ message_id => $msgid, - message => $rfc822, + $self = $class->create ({ message_id => $msgid, + message => $rfc822, simple => $simple }); $self->call_plugins("on_store", $self); $self; @@ -43,10 +43,13 @@ sub fix_msg_id { my ($self, $simple) = @_; - my $id = $simple->header("Message-ID"); - if ($id) { $id =~ s/.*<(.+)>.*/$1/ && return $id; } - my $fake = $$."-".time()."\@unknown"; - $simple->header_set("Message-ID", "<$fake>"); + + if ( my $id = $simple->header("Message-ID") ) { + $id =~ s/.*<(.+)>.*/$1/ && return $id; + } + my $fake = Email::MessageID->new.''; + $simple->header_set("Message-ID", $fake); + $fake =~ s/^.(.*).$/$1/; # we don't want the <> return $fake; }
Generated at 16:00 on 03 Feb 2005 by mariachi 0.52