I am using a SMTP mail server which require user + ssl authentication for connection. I am looking for the perl modules to connect to the mail server and send emails but doesn’t found anything helpful.
Any suggestion for perl module or any perl code would be really appreciated.
EDIT
I have tried to use Mail::Sendmail and Net::SMTP::SSL to connect to the sendmail server and send mail. Below is the sample code but getting the error user unknown.
Error:
mail: Net::SMTP::SSL=GLOB(0x9599850) not found
RCPT TO: error (550 5.1.1 <user@mail.com>... User unknown).
Code:
#!/usr/bin/perl
use strict;
use warnings;
use Mail::Sendmail;
use Net::SMTP::SSL;
my %mail = (
From=> 'user1@server.com',
To=> 'user2@server.com',
# Cc will appear in the header. (Bcc will not)
Subject => 'Test message',
'X-Mailer' => "Mail::Sendmail version $Mail::Sendmail::VERSION",
);
$mail{Smtp} = Net::SMTP::SSL->new("mail.server.com", Port=> 465, Debug=>1);
$mail{auth} = {user=>'username', password=>"password", required=>1 };
$mail{'X-custom'} = 'My custom additionnal header';
$mail{Message} = "The message key looks terrible, but works.";
# cheat on the date:
$mail{Date} = Mail::Sendmail::time_to_date( time() - 86400 );
if (sendmail %mail) { print "Mail sent OK.\n" }
else { print "Error sending mail: $Mail::Sendmail::error \n" }
print "\n\$Mail::Sendmail::log says:\n", $Mail::Sendmail::log;
I assume you verified the data in this line:
is the user ‘username’ (in your reallife code ‘user@mail.com’?) with the password ‘password’ known at mail.server.com?
If not, I would expect a
User unknownerror.EDIT1
I just saw that you have no ‘To’ in that mail, ‘only’ a cc, might your mail server not like that (mine didn’t mind, so then :-), or did that ‘happen’ in trimming down the code?
EDIT2
I was able to reproduce your error by replacing the line
with
you need to give the mailserer a valid address to send the message to! When I supplied an existing to address (the
Cc=>'user2@server.com'line .. it worked!