介绍
Perl 虽然是一门比较老的语言, 但功能齐全, 对于 Linux 用户而言, 说的上是一把利器, 这里介绍下用 Perl 语言连接 SMTP 服务器来发送邮件.
使用标准库中的 Net::SMTP
这里以 163
邮箱发送为例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| use strict; use warnings; use Net::SMTP; use IO::Socket::SSL; use Encode;
my $smtp = Net::SMTP->new('smtp.163.com', Port => 465, Timeout => 30, Debug => 1, SSL => 1);
if (!$smtp->auth('xxx@163.com', 'xxxx')) { die "Authentication failed: " . $smtp->message; }
my $msg = "hello"; $smtp->mail('xxx@163.com'); if ($smtp->to('xxx@qq.com')) { $smtp->data(); $smtp->datasend("To: xxx\@qq.com\n"); $smtp->datasend("From: xxx\@163.com\n"); $smtp->datasend("Subject: Test Email\n"); $smtp->datasend("Content-Type: text/plain; charset=UTF-8\n"); $smtp->datasend("Content-Transfer-Encoding: 8bit\n"); $smtp->datasend("\n"); $smtp->datasend("$msg\n"); $smtp->dataend(); } else { print "Error: ", $smtp->message(); }
$smtp->quit;
print "Email sent successfully!";
|