SF.net SVN: postfixadmin:[1389] trunk/VIRTUAL_VACATION/vacation.pl
Brought to you by:
christian_boltz,
gingerdog
From: <Gin...@us...> - 2012-05-24 11:15:09
|
Revision: 1389 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1389&view=rev Author: GingerDog Date: 2012-05-24 11:14:58 +0000 (Thu, 24 May 2012) Log Message: ----------- add a friendly from address to vacation messages; probably needs more work to beautify it though...; change error handling if we cannot send the reply to be hopefully more robust Modified Paths: -------------- trunk/VIRTUAL_VACATION/vacation.pl Modified: trunk/VIRTUAL_VACATION/vacation.pl =================================================================== --- trunk/VIRTUAL_VACATION/vacation.pl 2012-05-13 21:09:03 UTC (rev 1388) +++ trunk/VIRTUAL_VACATION/vacation.pl 2012-05-24 11:14:58 UTC (rev 1389) @@ -487,6 +487,7 @@ my $from = $email; my $to = $orig_from; my %smtp_connection; + my $friendly_from = "Vacation Service"; %smtp_connection = ( 'smtp' => $smtp_server, 'port' => $smtp_server_port, @@ -499,12 +500,14 @@ 'ctype' => 'text/plain; charset=UTF-8', 'headers' => 'Precedence: junk', 'headers' => 'X-Loop: Postfix Admin Virtual Vacation', + 'on_errors' => 'die', # raise exception on error ); my %mail; # I believe Mail::Sender qp encodes the subject, so we no longer need to. %mail = ( 'subject' => $subject, 'from' => $from, + 'fake_from' => $friendly_from . " <$from>", 'to' => $to, 'msg' => encode_base64($body) ); @@ -513,12 +516,17 @@ $logger->info(%mail); return 0; } - $Mail::Sender::NO_X_MAILER = 1; - my $sender = new Mail::Sender({%smtp_connection}); - $sender->Open({%mail}); - $sender->SendLineEnc($body); - $sender->Close() or $logger->error('Failed to send vacation response: ' . $sender->{'error_msg'}); - $logger->debug("Vacation response sent to $to, from $from"); + eval { + $Mail::Sender::NO_X_MAILER = 1; + my $sender = new Mail::Sender({%smtp_connection}); + $sender->Open({%mail}); + $sender->SendLineEnc($body); + $sender->Close(); + $logger->debug("Vacation response sent to $to, from $from"); + }; + if ($@) { + $logger->error("Failed to send vacation response: $@ / " . $Mail::Sender::Error); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |