在Perl中使用sendmail发送MIME邮件
作者:oulix
邮件:oulix@263.net
初次写文,有疏漏、错误的地方请指正。
搞web开发的同志可能碰到过需要在页面里嵌入发送邮件的功能,如果是普通的纯文本的邮件还好,没问题,用asp有好多组件,用cgi也有好工具,比如perl。在perl中使用unix平台下的sendmail可以实现这个目的。Perl中发送纯文本邮件的典型例子如下:
#!/usr/lib/perl
use strict;
my($r_mail) = 'recipients@aaa.net';
my($s_mail) = 'sender@bbb.com';
my($subject) = 'subject';
open(MAIL,'|/usr/lib/sendmail -t');
select(MAIL);
print<<"END_TAG";
To: $r_mail
From: $s_mail
Subject: $subject
邮件内容
END_TAG
有几点要注意,在发送邮件里To, From和接受者邮件地址变量$r_mail以及发送者邮件$s_mail之间
要留一个空格,避免不必要的报错问题(我遇到过,不知道你有没有碰到)。还有那个结束标记
END_TAG如果是文件的最后一行,最好在后面加一两个空行,我曾经碰到没后面的空行perl找不到
END_TAG的情况。还有,不要忘了subject之后的那个空行是必须的,它分开了邮件头和邮件内容。
好,进入正题,如果我们需要发送html格式的邮件呢?如果写成这样
#!/usr/lib/perl
use strict;
my($r_mail) = 'recipients@aaa.net';
my($s_mail) = 'sender@bbb.com';
my($subject) = 'subject';
open(MAIL,'|/usr/lib/sendmail -t