ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在CentOS上利用mailx搭建邮件服务

在CentOS上利用mailx搭建邮件服务

原创 Linux操作系统 作者:神谕丶 时间:2016-11-03 17:37:10 0 删除 编辑

安装很简单……直接通过yum就好了。
  1. yum -y install mailx

安装好后,编辑/etc/mail.rc

此处用163邮箱,只要在该文件末尾加上如下内容即可完成配置:
  1. set from="xxx_db@163.com"    -- 发件邮箱
  2. set smtp=smtp.163.com        -- smtp服务器,此处为黄易163的
  3. set smtp-auth-user=xxx_db    -- 也就是@163.com前的内容
  4. set smtp-auth-password=      -- 密码
  5. set smpt-auth=login   

日常用法很简单:
比如给aaa@xxx.com这个邮箱发送邮件:(多个邮箱用逗号,分隔)
  1. $ 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查询从库信息


  1. redis-cli info Replication | grep -E "role|master_link_|master_last_io_"

然后手动看文本内容,多了一个^M,这导致了mailx把本该是文本内容的当做了附件。
(当然该附件拿文本编辑器打开,内容是本该发送的内容)




这里用到的解决方法:
通过dos2unix命令将需要发送的内容(文本文件)由DOS格式文本文件转换成UNIX格式

比如要发送的内容从a.txt文件中读取,那么在mailx发送之前,执行如下命令即可:

  1. $ dos2unix a.txt
  2. dos2unix: converting file a.txt to UNIX format ...

如果没有这个工具,通过yum安装一下就好了。




更多用法可以用man查看一下。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29773961/viewspace-2127631/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
微信公众号:神谕的暗影长廊

注册时间:2014-07-28

  • 博文量
    161
  • 访问量
    1195297