The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;

use Test::More tests => 16;

use Mail::File;
use File::Path;
use IO::File;

my $path = 'mailfiles';
my $temp = 'mailfiles/mail-XXXXXX.eml';

my @content = (
    'From: me@example.com',
    'To: you@example.com',
    'Subject: Blah Blah Blah',
    'Date: ',
    'Cc: Them <them@example.com>',
    'Bcc: Us <us@example.com>; anybody@example.com',
    "X-Header-1: This is a test\n\nYadda Yadda Yadda"
);

mkpath($path);
my $mail = Mail::File->new(template => $temp);
isa_ok($mail,'Mail::File');

$mail->From('me@example.com');
$mail->To('you@example.com');
$mail->Cc('Them <them@example.com>');
$mail->Bcc('Us <us@example.com>; anybody@example.com');
$mail->Subject('Blah Blah Blah');
$mail->Body('Yadda Yadda Yadda');
$mail->XHeader('X-Header-1','This is a test');

is($mail->From(),'me@example.com');
is($mail->To(),'you@example.com');
is($mail->Cc(),'Them <them@example.com>');
is($mail->Bcc(),'Us <us@example.com>; anybody@example.com');
is($mail->Subject(),'Blah Blah Blah');
is($mail->Body(),'Yadda Yadda Yadda');
is($mail->XHeader('X-Header-1'),'This is a test');

my $file = $mail->send();
my $exists = (-r $file ? 1 : 0);
is($exists,1);

my $fh = IO::File->new($file, 'r') or die "Failed to open file [$file]: $!\n";
{
	local $/ = undef;
	my $mailfile = <$fh>;

    for my $content (@content) {
        like($mailfile,qr/$content/is,"checking content includes '$content'");
    }
}
$fh->close;
	
rmtree $path;