summaryrefslogtreecommitdiff
path: root/fml
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-04-10 14:34:19 +0000
committerfukachan <fukachan>2001-04-10 14:34:19 +0000
commit70ba993aec0dcb947a0da801c6875b34762f71eb (patch)
treebcc7c5952c6ba0e74461b40089b56afc2c37d54d /fml
parenta9684e148b628a2d118c9319afa8c7556fe48574 (diff)
downloadfml8-70ba993aec0dcb947a0da801c6875b34762f71eb.tar.gz
fml8-70ba993aec0dcb947a0da801c6875b34762f71eb.tar.bz2
fml8-70ba993aec0dcb947a0da801c6875b34762f71eb.zip
parse exim error format
Diffstat (limited to 'fml')
-rw-r--r--fml/lib/Mail/Bounce/Exim.pm92
1 files changed, 92 insertions, 0 deletions
diff --git a/fml/lib/Mail/Bounce/Exim.pm b/fml/lib/Mail/Bounce/Exim.pm
new file mode 100644
index 00000000..d30d832a
--- /dev/null
+++ b/fml/lib/Mail/Bounce/Exim.pm
@@ -0,0 +1,92 @@
+#-*- perl -*-
+#
+# Copyright (C) 2001 Ken'ichi Fukamachi
+# All rights reserved. This program is free software; you can
+# redistribute it and/or modify it under the same terms as Perl itself.
+#
+# $FML: Exim.pm,v 1.4 2001/04/10 11:52:26 fukachan Exp $
+#
+
+
+package Mail::Bounce::Exim;
+
+use strict;
+use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
+use Carp;
+
+=head1 NAME
+
+Mail::Bounce::Exim - Exim error message format parser
+
+=head1 SYNOPSIS
+
+=head1 DESCRIPTION
+
+
+ $result = {
+ addr => {
+ Original-Recipient => 'rfc822; addr'
+ Final-Recipient => 'rfc822; addr'
+ Diagnostic-Code => 'reason ...'
+ Action => 'failed'
+ Status => '4.0.0'
+ }
+ }
+
+=head1 Exim Error Formats
+
+ Received: from fukachan by eriko.fml.org with local (Exim 2.04 #5)
+ id 11fxjP-0005MW-00
+ for enterprise-admin@shumi.fml.org; Tue, 26 Oct 1999 12:57:07 +0900
+ X-Failed-Recipients: rudo@nuinui.net
+ From: Mail Delivery System <Mailer-Daemon@eriko.fml.org>
+ To: enterprise-admin@shumi.fml.org
+ Subject: Mail delivery failed: returning message to sender
+ Message-Id: <E11fxjP-0005MW-00@eriko.fml.org>
+
+=head1 METHODS
+
+=head2 C<new()>
+
+=cut
+
+
+# need to guess MTA as "exim" ???
+# if (/^Message-ID:\s+\<[\w\d]+\-[\w\d]+\-[\w\d]+\@/i) {
+# $MTA = "exim";
+# }
+
+
+sub analyze
+{
+ my ($self, $msg, $result) = @_;
+ my $m = $msg->rfc822_message_header();
+ my $addr = $m->get('X-Failed-Recipients');
+
+ $addr =~ s/\s*$//;
+
+ # set up return buffer
+ $result->{ $addr }->{ 'Final-Recipient' } = $addr;
+ $result->{ $addr }->{ 'Status' } = '5.x.y';
+}
+
+=head1 AUTHOR
+
+Ken'ichi Fukamachi
+
+=head1 COPYRIGHT
+
+Copyright (C) 2001 Ken'ichi Fukamachi
+
+All rights reserved. This program is free software; you can
+redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 HISTORY
+
+Mail::Bounce::DSN appeared in fml5 mailing list driver package.
+See C<http://www.fml.org/> for more details.
+
+=cut
+
+
+1;