请问如何在shell里面发email?

请问如何在shell里面发email?

google一下, 发现很多方法都不能满足要求, 希望能有经验者指条明道.

要求为:
1)支持SMTP的认证. 可以设置SMTP host, port, account, password.
2)支持附件.
3)如果能支持subject和信体的encoding更好.
telnet mailserver 25
开什么玩笑.
mutt
不知道 关注中...
好麻烦哦
不知道,从没有用过!!...........高手指教.......
自己看下面的shell脚本吧,不多说了。
[code:1]
#!/bin/sh

function echo_help(){
echo "Usage:"
echo "sh mailto.sh -to mailaddr -file messagefilename [-from frommailaddr] [-subject mailsubject] [-fname showname] [-tname toshowname]"
}

email="to@toaddress.com"
emailname="Test Mail"
messagebody="tmp.tmp"
from="from@fromaddress.com"
fromname="MailReport"
subject="Mail Report"

until [ $# -eq 0 ]
do
tmpV=$1

if [ $tmpV = "-from" ] ; then
shift
tmpV=$1
from=$tmpV
elif [ $tmpV = "-to" ] ; then
shift
tmpV=$1
email=$tmpV
elif [ $tmpV = "-subject" ] ; then
shift
tmpV=$1
subject=$tmpV
elif [ $tmpV = "-file" ] ; then
shift
tmpV=$1
messagebody=$tmpV
elif [ $tmpV = "-fname" ] ; then
shift
tmpV=$1
fromname=$tmpV
elif [ $tmpV = "-tname" ] ; then
shift
tmpV=$1
emailname=$tmpV
elif [ $tmpV = "--help" -o $tmpV = "-h" ] ; then
echo_help
exit 1
fi

shift
done

if ! test -f ${messagebody} ; then
echo "${messagebody} not exists!"
echo_help
exit 2
fi

echo "begin send..."

echo -e "To: \"${emailname}\" <${email}>
From: \"${fromname}\" <${from}>
Subject: ${subject}

`cat ${messagebody}`" | /usr/sbin/sendmail -t

echo "send OK."

[/code:1]
先谢谢您的代码, 不过上面的代码不符合我提的三个要求.
1)在shell中用了本机的sendmail来作MTA,  不是使用其他的SMTP server的. 当然也就不能设置"SMTP host, port, account, password."

2)没有支持附件(应该Base64压码吧?)

3)没有对subject encoding.