【发布时间】:2017-09-12 04:18:40
【问题描述】:
我一直使用MIME::Lite 发送到我的邮件列表没有任何问题,但最近决定使用 SMTP 身份验证,因为我听说它更适合电子邮件来源验证。
我无法让它工作。我检查并安装了 Net::SMTP 模块,据我所知 Mime::Lite 用于此目的。
有什么想法吗?
这是我的代码:
my $mailHost = 'mail.domain.com';
my $user = 'username';
my $pass = 'password';
my $html = 'someHTML';
my $text = 'someText';
use MIME::Lite;
MIME::Lite->send( 'smtp', $mailHost, AuthUser => $user, AuthPass => $pass );
my $msg = MIME::Lite->new(
From => 'Mailing list <list@domain.com>',
To => $email,
Subject => $subject,
Type => 'multipart/alternative'
);
$msg->attach(
Type => 'TEXT',
Data => $text
);
$msg->attach(
Type => 'text/html',
Data => $html
);
$msg->send();
【问题讨论】:
-
如果您能准确解释您所看到的意外行为,将会有所帮助。另外,请向我们展示您之前有效的代码,以便我们进行比较。
-
邮件没有发送。我什至不确定如何调试它或在哪里检查任何错误。这是在共享托管服务器上。上述代码与有效代码之间的唯一区别是添加了以下行:
MIME::Lite->send('smtp', $mailHost, AuthUser=>$user, AuthPass=>$pass);,根据 CPAN 文档调用 Net::SMTP 来发送消息。 -
您是否收到任何错误消息?是否有任何内容写入邮件日志?
-
我在哪里可以找到它?我在 Linux 服务器上使用 cPanel。
-
另外,尝试在对 $msg->send() 的调用中设置“MIME::Lite->send”中的值;因为看起来您的邮件主机、用户、密码仍然保持不变,所以通过 MIME::Lite->send 设置默认值可能不会增加太多价值。然后看答案,准备切换到支持更好的模块。