清单 9. 自动发送邮件的 Perl 脚本
#!/usr/bin/perl
# 将要使用 sendmail 来发送邮件
my $mailprog = "/usr/sbin/sendmail";
# 发送者的邮件地址
my $ senderemail = "sender\@cn.ibm.com";
# 发送者的名字
my $sender = "sender";
# 发送时的时间
my $datestring=`date +%m.%d.%Y`;
# 接收者的 email 地址
my $email = "receiver\@cn.ibm.com";
# Send file to user in email
open(MAIL, "|$mailprog -f $sender -t $senderemail") or die;
# 创建发送邮件的头
print MAIL "From: $sender\n";
print MAIL "To: $email\n";
# 主题
print MAIL "Subject: Automation test on SELS $datestring\n";
#email 的信件内容
print MAIL "Hi All\nthis is the automation test result on $datestring. Please check
the attached files.\n";
# 第一个附件
$file = "/tmp/28279.txt";
open(FILE, "uuencode $file $file |") or die;
print MAIL <FILE>;
close(FILE);
# 第二个附件
$file="/tmp/28280.txt";
open(FILE, "uuencode $file $file |") or die;
while( <FILE>) { print MAIL; };
close(FILE);
# 完成邮件发送
close(MAIL);
AIX 的 mail 系统中最重要的三个组成部分是用户接口 (the user interface)、消息路由程序 (the message routing program) 和消息投递程序 (the message delivery program) 或 mailer。AIX 系统中的 mail 程序就是所谓的用户接口 (the user interface),它对应上文提到的邮件用户代理 MUA;sendmail 程序就是所谓的消息路由程序 (the message routing program),它对应前面所说的邮件传输代理 MTA。在传递邮件的时后,如有必要,sendmail 命令将与远程系统建立 TCP/IP 连接 , 然后使用 SMTP 传递邮件到远程系统。
AIX 邮件系统的工作原理和配置,和 Linux 基本都相同,特殊的地方有以下几点。
生成配置文件的脚本的位置/usr/samples/tcpip/sendmail/cf/aixsample.mc 被用来生成 sendmail 相应的配置文件。
sendmail daemon 启动和关闭的方式启动 sendmail:
startsrc -s sendmail关闭 sendmail:
stopsrc -s sendmail通过 SMTP 服务器发 Internet 邮件
在使用 SMTP 代理的情况下,sendmail 需要对 /etc/sendmail.cf 配置文件中的 DS 项进行修改。DS 项是指被用来转发邮件的主机。注意,该配置项修改以后,sendmail daemon 必须重启才能生效。/etc/sendmail.cf 文件的具体的修改内容如清单 10 所示。
清单 10./etc/sendmail.cf 文件的修改内容
# "Smart" relay host (may be null) DS[SMTP 的主机 IP]