07 October 2006
This post may be outdated due to it was written on 2006. The links may be broken. The code may be not working anymore. Leave comments if needed.
应该说 Net::SMTP 的 auth 并不是很好,它是根据 SMTP 服务器返回的 AUTH 支持参数来进行下一步的 auth 行动。但是有时候 SMTP 会返回很多个 auth 类型如 LOGIN CRAM-MD5 PLAIN,但是你可能需要用 PLAIN 来进行验证。这时候 Net::SMTP_auth 会派上用场。
Net::SMTP_auth @ISA = qw(Net::SMTP); 唯一不同的是它比 Net::SMTP 的 auth 上多了一个参数。
Net::SMTP 的可能是这样 $smtp->auth($username, $password);
但是 Net::SMTP_auth 多了一个参数指定 auth 类型。$smtp->auth('PLAIN', $username, $password);
如果非得要用 Net::SMTP 来进行 AUTH PLAIN 的话也是可以的:
use MIME::Base64;
# after $stmp = Net::SMTP->new
$smtp->command('AUTH PLAIN')->response();
my $userpass = encode_base64("\000$username\000$password");$userpass =~ s/\n//g;

好象是这样子的。Have fun!

blog comments powered by Disqus