dateheader - RFC2822-compliant "Date:" header with current gmtime


dateheader documentation Contained in the dateheader distribution.

Index


Code Index:

NAME

Top

dateheader - RFC2822-compliant "Date:" header with current gmtime

SYNOPSIS

Top

  use dateheader;
  ...
  print MESSAGEHANDLE <<EOF;
$dateheader
From: Automated Customer Support <ACS@example.net>
To: $Firstname $Lastname <$email_address>
Subject: resolution of ticket number $ticketnumber

... EOF

DESCRIPTION

Top

Ties a scalar called $dateheader to the dateheader module. This scalar, when stringified, gives a RFC2822(section 3.3) compliant "Date:" header.

EXPORT

${caller().'dateheader'} gets tied to the dateheader package by the import function.

HISTORY

Top

0.0

A tied dateheader variable appeared in early versions of TipJar::MTA::queue

1.0

We're now doing the tieing within the module, so use dateheader gives you the $dateheader variable, ready to interpolate. We're also going back to using time zone -0000, which is correct according to the RFC, but might not be universally understood by broken MUA software which needs to be fixed.

COPYRIGHT AND LICENCE

Top


dateheader documentation Contained in the dateheader distribution.

package dateheader;

use 5.00000;
use strict;
use vars qw( $VERSION );
$VERSION='1.0';
my @days=qw/Sun Mon Tue Wed Thu Fri Sat/;
my @months=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;

sub TIESCALAR{
	my $x;
	bless \$x;
};
sub FETCH{
   my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday)
   =  gmtime(time);
   #adjust date for printability:
   $year += 1900;
   # zero-pad time-of-day components
   $hour = substr("0$hour", -2);
   $min = substr("0$min", -2);
   $sec = substr("0$sec", -2);

   # rfc 2822.3.3 says we should use -0000 but not all MUAs understand that
   return
   # "Date: $days[$wday], $mday $months[$mon] $year $hour:$min:$sec +0000";
   "Date: $days[$wday], $mday $months[$mon] $year $hour:$min:$sec -0000";
};

# tie $dateheader, 'dateheader';

sub import{
	no strict 'refs';
	# *{caller().'::dateheader'} = $dateheader;
	tie ${caller().'::dateheader'}, 'dateheader';
};


1;
__END__