最初的想法这样的:由于家中宽带上网是ADSL。ADSL的特点是下行速度还可以,但是上线速度就最高只有50kB/s.如果有大文件附件的邮件需要发送时,需要等待很长时间,而且不能保证一定传送成功。家中的高清播放机是可以长期开机的,而且功耗很低。在嵌入式linux系统中搭建邮件服务,然后把邮件附件上传到播放器中,让播放器自动发送出去,那就方便了。当然为了保证发送成功,应该加入一个成功校验,出错重发的脚本。就完美了。说干就干!
我的高清播放机是支持ipkg安装包的。搜索了一下ipkg包,sendmail/msmtp/esmtp好像都可以作为后选,决定挨个尝试。结果sendmail安装失败,可能与固件中的linux环境有关吧。
msmtp安装倒是很顺利。但是参照
http://www.nslu2-linux.org/wiki/HowTo/SendMailWithMSMTP创建配置文件后,运行就出现了错误。
msmtp: cannot use a secure authentication method
解决办法是auth要设置为“login”而不是“on”
最终的我的配置文件msmtprc是这样的
account default
host smtp.189.cn
from *****@189.cn
auth login
port 25
user *****
password *****
tls off先用自己的邮箱给自己发一封邮件,简单测试一下。邮件正文编辑完,按CTRL+D结束。
测试结果如下
下一步计划:加入文件附件,通过命令行无人值守发送
Google搜索锁定目标mutt,强大的linux邮件客户端。运行ipkg install mutt安装很顺利,但具体配置就比较复杂了。
最终我的Muttrc配置文件如下
#设置邮箱目录set folder="/tmp/hdd/volumes/HDD1/mail"
#设置发件箱目录
set record="+outgoing"
set charset="UTF-8"
set locale=`echo"${LC_ALL:-${LC_TIME:-${LANG}}}"`
set assumed_charset="GB2312"
set rfc2047_parameters=yes
#设置使用的邮件发送程序
set sendmail="/usr/local/etc/opt/bin/msmtp"
#设置邮件编辑程序,由于最终要求无人值守,这里可以省略
set editor="vi"
命令行如下
/usr/local/etc/opt/etc # mutt -s "test mutt attachment2" -a /tmp/hdd/volumes/HDD
1/music/Track09.mp3 -- hbhuyt@189.cn < /tmp/hdd/volumes/HDD1/ipkg.conf上面的命令中-s参数是指定邮件标题,-a参数用来上传邮件附件,--用来隔离多个邮件附件, "<"号后面的是邮件正文部分。