diff -uNr vacation/vacation.pl vacationMOD/vacation.pl
--- VIRTUAL_VACATION//vacation.pl	2007-05-16 15:56:40.000000000 -0300
+++ VIRTUAL_VACATIONMOD/vacation.pl	2007-05-17 17:09:40.000000000 -0300
@@ -15,6 +15,12 @@
 #             Slightly better logging which includes messageid
 #             Avoid infinite loops with domain aliases
 #
+# 2007/05/15  Devlin Goncalves <develino.goncalves at yahoo.com.br>
+#             Added Outlook, Outlook Express and Thunderbird
+#             Client Support
+#             Suport using Return-Path insted of using From in
+#             Mail Header
+#
 use DBI;
 use strict;
 
@@ -168,13 +174,15 @@
 
 ########################### main #################################
 
-my ($from, $to, $cc, $subject, $messageid);
+my ($from, $to, $cc, $subject, $messageid, $Return_Path);
 
 # Take headers apart
 while (<STDIN>) {
    last if (/^$/);
    if (/^from:\s+(.*)\n$/i) { $from = $1; }
    if (/^to:\s+(.*)\n$/i) { $to = $1; }
+   if (/^to:\W+(.*)chr(34)\W+\n$/i) { $to = $1; }
+   if (/^Return-Path:\s+(.*)\n$/i) { $Return_Path = $1; }
    if (/^cc:\s+(.*)\n$/i) { $cc = $1; }
    if (/^subject:\s+(.*)\n$/i) { $subject = $1; }
    if (/^message-id:\s+(.*)\n$/i) { $messageid = $1; }
@@ -188,8 +196,15 @@
 $from = lc ($from);
 
 # Check if it's an obvious sender, exit
-if ($from =~ /([\w\-.%]+\@[\w.-]+)/) { $from = $1; }
-if ($from eq "" || $from =~ /^owner-|-(request|owner)\@|^(mailer-daemon|postmaster)\@/i) { exit (0); }
+if ($Return_Path =~ /([\w\-.%]+\@[\w.-]+)/) { $Return_Path = $1; }
+if ($from =~ /([\w\-.%]+\@[\w.-]+)/)
+        {
+                $from = $1;
+        } else {
+                if ($from eq "" || $from =~ /^owner-|-(request|owner)\@|^(mailer-daemon|postmaster)\@/i) { exit (0); }
+                $from = $Return_Path;
+        }
+if ($to =~ /([\w\-.%]+\@[\w.-]+)/) { $to = $1; }
 
 # Strip To: and Cc: and push them in array
 my @strip_cc_array; 

 	  	 
