Linux使用mail功能自动发送邮件程序以及经常遇到的问题

在实现Linux中mail功能自动发送邮件时,需要发送中文内容,以及中文主题的邮件。

整个实现过程中遇到了三大问题,如下:

1、如何发送html格式的邮件内容?

2、如何发送中文内容的邮件?

3、如何发送中文标题的邮件?(在解决这个问题时话费不少时间)

4、发送的邮件内容以附件形式显示怎么办?

解答:

1、发送html格式的邮件内容,只需在mail命令的主题中设置参数Content-Type:text/html即可。命令如下:

echo "Hello <br>world" | mail -s "$(echo -e "TestSubject \nContent-Type:text/html")"    Anne-Wei@126.com

2、首先检查自己系统中是否支持中文编码,输入locale命令查看如下所示:

Anne-Wei:~ $   locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

如果未使用中文编码,可在环境变量中加入如下一行:

export  LANG=zh_CN.UTF-8

检查结束后,在mail命令的主题参数中设置charset=UTF-8,命令如下:

echo "Hello <br>中文测试" | mail -s "$(echo -e "TestSubject \nContent-Type:text/html;charset=UTF-8")"    Anne-Wei@126.com

3、到了这一部,基本就可以实现,你所需要的自动发邮件的功能了,但是,如果邮件标题是中文,能否正常发送成功呢?

这时你就会发现,邮件的中文标题乱码。

在使用mail命令发送中文标题时,需要先将中文base64编码后,使用UTF-8编码方式来输出。(本篇直接给出命令,下篇将详细讲如何使用base64编码)

命令如下:

echo "Hello <br>中文测试" | mail -s "$(echo -e "=?UTF-8?B?$(echo -n 'Test中文标题' | base64)?=\nContent-Type:text/html;charset=UTF-8")"  Anne-Wei@126.com


如此以来,就可发送中文标题的中文邮件内容啦……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值