Perl虽然有Net::SMTP模块可以发送邮件,但是似乎只能发送纯文本的邮件,这次的需求是将一个HTML网页直接显示在邮件正文中,因此搜索到了MIME::Lite模块来实现这个功能。

use strict;
use MIME::Lite;

my $mailhost="smtp.163.com";
my $username="test\@163.com";
my $password="test";
my $data='
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> title </title>
</head>
<body>
<p>hello world</p>
</body>
</html>
';
my $msg=MIME::Lite->new(
	From=>"$username",
	To=>"$username",
	Subject=>"title",
	Type=>"text/html",
	Data=>"$data"
);
$msg->send('smtp',$mailhost,AuthUser=>$username,AuthPass=>$password);