Patch to smtp-forward
[email protected] (Tony Lambiris)
| Newsgroups | perl.qpsmtpd |
|---|---|
| Message-ID | <[email protected]> |
Thoughts on the following changes to smtp-forward? These diffs were taken against the svn smtp-forward checked out yesterday. Thanks.
smtp-forward.patch
(text/x-patch, 1.7 KB)
--- smtp-forward 2010-09-13 17:16:07.516676585 -0400
+++ /tmp/smtp-forward 2010-09-14 13:40:37.436676584 -0400
@@ -20,6 +20,13 @@
=cut
use Net::SMTP;
+use Net::Cmd;
+
+sub trap {
+ my ($smtp) = @_;
+
+ $smtp->code =~ /5[0-9][0-9]/ ? return(DENY, $smtp->message) : return(DENYSOFT, $smtp->message);
+}
sub init {
my ($self, $qp, @args) = @_;
@@ -52,18 +59,18 @@
Timeout => 60,
Hello => $self->qp->config("me"),
) || die $!;
- $smtp->mail( $transaction->sender->address || "" ) or return(DECLINED, "Unable to queue message ($!)");
+ $smtp->mail( $transaction->sender->address || "" ) or return( trap($smtp) );
for ($transaction->recipients) {
- $smtp->to($_->address) or return(DECLINED, "Unable to queue message ($!)");
+ $smtp->to($_->address) or return( trap($smtp) );
}
- $smtp->data() or return(DECLINED, "Unable to queue message ($!)");
- $smtp->datasend($transaction->header->as_string) or return(DECLINED, "Unable to queue message ($!)");
+ $smtp->data() or return( trap($smtp) );
+ $smtp->datasend($transaction->header->as_string) or return( trap($smtp) );
$transaction->body_resetpos;
while (my $line = $transaction->body_getline) {
- $smtp->datasend($line) or return(DECLINED, "Unable to queue message ($!)");
+ $smtp->datasend($line) or return( trap($smtp) );
}
- $smtp->dataend() or return(DECLINED, "Unable to queue message ($!)");
- $smtp->quit() or return(DECLINED, "Unable to queue message ($!)");
+ $smtp->dataend() or return( trap($smtp) );
+ $smtp->quit() or return( trap($smtp) );
$self->log(LOGINFO, "finished queueing");
return (OK, "Queued!");
}