我使用的是 SMTP 邮件服务器,需要用户 + ssl 身份验证才能连接。我正在寻找 perl 模块来连接到邮件服务器并发送电子邮件,但没有发现任何有用的东西。
任何有关 perl 模块或任何 perl 代码的建议将不胜感激。
EDIT
我尝试使用 Mail::Sendmail 和 Net::SMTP::SSL 连接到 sendmail 服务器并发送邮件。以下是示例代码,但出现错误用户未知。
Error:
mail: Net::SMTP::SSL=GLOB(0x9599850) not found
RCPT TO: error (550 5.1.1 <[email protected]>... User unknown).
Code:
#!/usr/bin/perl
use strict;
use warnings;
use Mail::Sendmail;
use Net::SMTP::SSL;
my %mail = (
From=> '[email protected]',
To=> '[email protected]',
# 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;
我假设您验证了这一行中的数据:
$mail{auth} = {user=>'username', password=>"password", required=>1 };
是用户“用户名”(在您的现实代码中“[电子邮件受保护]'?) 使用 mail.server.com 上已知的密码“password”?
如果没有,我希望User unknown
error.
EDIT1我刚刚看到你的邮件中没有“收件人”,“只有”一个抄送,你的邮件服务器可能不这样(我的不介意,所以:-),或者是在修剪邮件时“发生”了这种情况代码?
EDIT2我能够通过替换行来重现您的错误
$mail{Smtp} = Net::SMTP::SSL->new("mail.server.com", Port=> 465);
with
$mail{Smtp} = Net::SMTP::SSL->new("smtp.mail.com", Port=> 465);
您需要向邮件服务器提供一个有效的地址来发送消息!当我提供现有的地址时(Cc=>'[email protected]'
线..它起作用了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)