转:Linux下mail命令附件发送使用技巧

这几天由于经常远程到一个Linux主机上处理东西,然后会生成一些文件,所以想把这些东西通过邮件附件的形式给自己发回来,于是好好研究了下Linux中的mail命令,其中参考了一些网友的经验:

1. 例如最简单的一个:

mail -s text zhousir1991@gmail.com

这条命令的结果是发一封标题为text的空信给后面的邮箱,但是往往这类邮件会被当成垃圾邮件来处理,所以如果没有收到邮件,建议打开垃圾箱来查看一下。

第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

2. 第二个例子:

echo “This is a test mail!”|mail -s text zhousir1991@gmail.com#第二种方法,使用管道命令。

mail -s test zhousir1991@gmail.com < file

第三种方法,以file的内容为邮件内容发信,这个我个人现在用的比较多,因为在终端中写东西毕竟不是很方便,所以我还是会首先选择事先写好一个文档然后再mail过去。

3. 带附件的邮件发送(这是我想重点介绍的一个东西)

如果你的系统中没有uuencode命令的话,并且你已经配好了yum仓库;(yum仓库配置可以参看我的其他文档:http://www.cnblogs.com/zhousir1991/archive/2011/03/05/1971879.html)请先安装sharutils (yum install sharutils)

uuencode 需要两个参数,第一个是你要发送的文件,当然这个也可以用管道来做,第二个是显示的文件名

uuencode /home/zhousir/httpd.conf httpd.conf|mail -s mailtest zhousir1991@gmail.com

tar czf - /home/zhousir/ | uuencode home.tgz |mail -s mailtest zhousir1991@gmail.com

ps: slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。

转自:http://www.svn8.com/linux/accidence/20091016/10858.html

LinuxMail命令收集:

“/var/spool/mail/[linux用户名]”文件中。
linux中输入mail,就进行了收件箱,并显示二十封邮件列表。

此时命令提示符为"&"
unread
标记为未读邮件

h|headers
显示当前的邮件列表
l|list
显示当前支持的命令列表
?|help
显示多个查看邮件列表的命令参数用法
d
删除当前邮件,指针并下移。 d 1-100 删除第1100封邮件
f|from
只显示当前邮件的简易信息。 f num 显示某一个邮件的简易信息
f|from num
指针移动到某一封邮件
z
显示刚进行收件箱时的后面二十封邮件列表
more|p|page
阅读当前指针所在的邮件内容 阅读时,按空格键就是翻页,按回车键就是下移一行
t|type|more|p|page num
阅读某一封邮件
n|next|{
什么都不填} 阅读当前指针所在的下一封邮件内容
阅读时,按空格键就是翻页,按回车键就是下移一行
v|visual
当前邮件进入纯文本编辑模式
n|next|{
什么都不填} num 阅读某一封邮件
top
显示当前指针所在的邮件的邮件头
file|folder
显示系统邮件所在的文件,以及邮件总数等信息
x
退出mail命令平台,并不保存之前的操作,比如删除邮件
q
退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件,已阅读邮件会转存到当前用户家目录下的mbox文件中。如果在mbox中删除文件才会彻底删除。
linux文本命令平台输入 mail -f mbox,就可以看到当前目录下的mbox中的邮件了。
cd
改变当前所在文件夹的位置
写信时,连按两次Ctrl+C键则中断工作,不送此信件。
读信时,按一次Ctrl+C,退出阅读状态。

 

另外一种方法:

在Linux命令行下发送html格式的邮件

[日期:2011-01-09]来源:Linux社区 作者:radarruan


编码方式如果用utf8,显示出的中文为乱码,所以建议用gb2312,这样就没有乱码啦! 发送脚本范本如下#!/bin/bash
#send a mail to all
#TIME=`date '+%H:%M:%S'`
for MAIL in `cat /home/service/mailscript/people`
do
TIME=`date '+%H:%M:%S'`
cat /home/service/mailscript/active_account.vm|formail -I "From: service" -I "To:$MAIL" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:祝贺你"|/usr/sbin/sendmail -oi $MAIL
echo "$TIME--$MAIL sent ok!" >> /home/service/mailscript/mailtest.log
sleep 10
done

 

执行上面的脚本的时候注意要使用邮件系统的service系统用户来执行这个脚本。

参考:

今天终于搞定了如何在命令行的情况下发送带图片的邮件。其实思路很简单的,只是以前没有注意到。如何实现呢?就是利用formail+sendmail啦!

formail接受html格式的文件作为邮件内容,这样就可以解决发送带图片邮件的问题啦,因为html中可以插入图片,只要给出的img src为可用的链接就行了。嗯嗯经过测试能够实现既定功能。

cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:layer4 config monitor" | /usr/sbin/sendmail -oi ×××@×××.com

不行你用上面的命令来试试,觉得好用。不过还有一点就是编码问题,我用的foxmail,如果用utf8,显示出的中文为乱码,所以建议用gb2312,这样就没有乱码啦!

 

第三种方法:

就是ant的mail任务

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值