Aahhh I got it! When building up the original email, I was doing:
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Type => 'multipart/alternative',
Subject => $subject_val,
);
But obviously Net::SMTP does the to/from part itself. Removing it so I just had:
my $msg = MIME::Lite->new(
Type => 'multipart/alternative',
Subject => $subject_val,
);
...and it works like a charm now. Thanks goodness for that!
Now I can relax a bit for the rest of the weekend haha
Thanks to both of you :)
So for anyone who may come across this post in the future, here is the code I ended up using (appologies for not making it super pretty, but I need to call it a day :))
my $msg = MIME::Lite->new(
Type => 'multipart/alternative',
Subject => $subject_val,
);
my $att_text = MIME::Lite->new(
Type => 'text',
Data => "plain text version",
Encoding => 'quoted-printable',
);
$att_text->attr('content-type' => 'text/plain; charset=UTF-8');
$msg->attach($att_text);
my $att_html = MIME::Lite->new(
Type => 'text',
Data => "<b>html version</b> goo",
Encoding => 'quoted-printable',
);
$att_html->attr('content-type' => 'text/html; charset=UTF-8');
$msg->attach($att_html);
my $email = $msg->as_string();
use Net::SMTP;
my $smtp = Net::SMTP->new('smtp.gmail.com',
Hello => 'domain.net',
Timeout => 30,
Debug => 1,
SSL => 1
) || die "Error: $!";
$smtp->auth($CFG->{db_smtp_user}, $CFG->{db_smtp_pass}) or die "Co
+uld not authenticate with mail.\n";
$smtp->mail('you@gmail.com'); # from addr
$smtp->to('foo@bar.com');
$smtp->data();
$smtp->datasend($email);
$smtp->quit();
|