系统要求是把收到的邮件一份一份的放到指定目录,然后由java来读取、解析后删除。原有的程序使用C写的,源代码不明。因为要加新功能,只好重写。为什么用perl呢,是因为正好有别的程序使用perl写的,可以参考。我是perl新手,之前根本没写过,只好请教google老师了。
程序是通过.forward文件来执行的。很简单,就是下面这一行内容:
"| /etc/smrsh/xxx.pl" .forward文件在/root下面,smrsh的设置请参考其他相关文档。
perl的程序如下,生成一个以时间戳为文件名的邮件文件就万事大吉了。
#!/usr/bin/perllocal $timestamp = qx(date +%Y%m%d%H%M%S%N);local $mailfile = "/aaa/bbb/$timestamp";open(MAILFILE,">$mailfile");local @mail=; foreach $content(@mail){ syswrite(MAILFILE, "$content");}close(MAILFILE);exit 0;简单吧。网上都是发邮件的例子,没找到生成文件的例子,没想到还挺简单。
另外,目录一定要可以让sendmail使用的用户有写权限才行。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/378235/viewspace-696972/,如需转载,请注明出处,否则将追究法律责任。