【发布时间】:2017-12-30 06:12:48
【问题描述】:
我正在尝试使用 Perl Net::SMTP 使用默认选择的 GSSAPI 以外的身份验证方法发送邮件(例如 force PLAIN)。
我试过了:
my $smtp;
$smtp = Net::SMTP::SSL->new($host, Port => $port);
$smtp->auth($user, $passwd);
并将最后一行替换为:
$smtp->auth('PLAIN', $user, $passwd);
或将具有选定机制的Authen::SASL 对象传递给$smtp->auth()。以上都不起作用 - 调试(和邮件服务器日志)说它仍在尝试AUTH GSSAPI。
有谁知道如何在Net::SMTP 中正确强制验证方法?
我的 Perl 版本是 Debian 8 的 5.20.2-3+deb8u8,软件包版本:
- Net::SMTP - 2.33
- Net::SMTP::SSL - 1.01
- Authen::SASL - 2.16
【问题讨论】:
-
我正在尝试使用 Perl 发送邮件
Net::SMTP在 2017 年,这听起来确实不是一个好主意。这些天我们有像Email::Sender这样的工具。 -
你准备好接受丑陋的黑客攻击了吗? 3.0 之前的 Net::SMTP “覆盖”在 Authen::SASL 构造函数中配置的机制,其中服务器在
EHLO回复中通告了 AUTH 机制。