【发布时间】:2011-12-20 12:21:05
【问题描述】:
我正在尝试使用带有身份验证的MIME::Lite 发送电子邮件。
这是我正在尝试的代码 sn-p:
#!/usr/bin/perl
use strict;
use DBI;
use lib '/theannealing.com/perl/';
use MIME::Lite;
use MIME::Base64;
use Authen::SASL;
my $recipient = 'recipient@email.com';
my $mailman = 'sender@email.com';
my $cc_recipient = 'ccrecipient@email.com';
my $subject = 'Subject';
my $email_message = "Message";
my ($user,$pass) = ("username","password");
MIME::Lite->send('smtp','smtp.server:port',AuthUser=>$user, AuthPass=>$pass);
my $email = new MIME::Lite(From => $mailman,To => $recipient,Cc => $cc_recipient,Subject => $subject,Data => "Data",Type => "multipart/mixed");
$email->attach(Type => 'TEXT', Data => "$email_message");
$email->send();
当我执行脚本时,我收到以下错误消息:
Cannot find a SASL Connection library at /usr/lib/perl5/5.8.8/Net/SMTP.pm line 143
我尝试搜索错误消息,但找不到任何有价值的解释和/或解决与 MIME::Lite 使用相关的问题
有谁知道出了什么问题或产生了该错误消息的原因?
更新 使用
mail() 函数通过 php 发送电子邮件在 Web 浏览器中可以正常工作,但不能在命令行中工作
【问题讨论】:
-
您安装了哪个版本的 Net::SMTP?
-
我没有使用
Net::SMTP,我使用的是MIME::Lite -
是的,但您的错误显然来自 Net::SMTP。
-
好的,这是一个开始......我猜
.pm文件之一正在调用Net::SMTP,但没有使用Net::SMTP的自定义代码 -
你安装了 Authen::SASL::Perl 吗?你有哪个版本的 Authen::SASL?
标签: perl email authentication smtp mime