共计 1037 个字符,预计需要花费 3 分钟才能阅读完成。
CentOS 上安装 mailx 很简单,直接通过 yum 就好了。
- yum -y install mailx
安装好后,编辑 /etc/mail.rc
此处用 163 邮箱,只要在该文件末尾加上如下内容即可完成配置:
- set from=“xxx_db@163.com” — 发件邮箱
- set smtp=smtp.163.com — smtp 服务器,此处为黄易 163 的
- set smtp–auth–user=xxx_db — 也就是 @163.com 前的内容
- set smtp–auth–password= — 密码
- set smpt–auth=login
日常用法很简单:
比如给 aaa@xxx.com 这个邮箱发送邮件:(多个邮箱用逗号, 分隔)
- $ echo “ 这里是邮件内容 ” | mailx –s “ 这里写邮件标题 ” aaa@xxx.com
当然也可以用 cat 或者 < 等方法读取文件中的内容。
常见错误:
① “/root/dead.letter” 11/324. . . message not sent.
可能是 smtp 未开启
比如此处用的是黄易 163 邮箱,就可以在 163 邮箱 web 界面中的【设置】-【POP3/SMTP/IMAP】-【设置 POP3/SMTP/IMAP】:
将对应的服务打钩。
此时会给出第三方也就是所谓的“客户端授权密码”(和原登录密码不一样)
此处的这个授权密码将用于 mailx 发邮件的密码
其他邮箱也要打开 smtp 服务。
##### 更新 #####
② 部分邮件,邮件内容被显示为附件。
我遇到这个问题是在一个检查 redis replication 的需求上发现的。
定时任务脚本通过 grep 查询从库信息
- redis–cli info Replication | grep –E “role|master_link_|master_last_io_”
然后手动看文本内容,多了一个 ^M,这导致了 mailx 把本该是文本内容的当做了附件。
(当然该附件拿文本编辑器打开,内容是本该发送的内容)
这里用到的解决方法:
通过 dos2unix 命令将需要发送的内容(文本文件) 由DOS 格式文本文件转换成 UNIX 格式
比如要发送的内容从 a.txt 文件中读取,那么在 mailx 发送之前,执行如下命令即可:
- $ dos2unix a.txt
- dos2unix: converting file a.txt to UNIX format ...
如果没有这个工具,通过 yum 安装一下就好了。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142383.htm