阿里云centos7配置mailx

在 Centos 安装 Mailx 非常简单,直接使用 yum 安装即可。安装之前,建议移除不再需要且可能会引起冲突的 postfix 或 sendmail 程序。

yum -y remove postfix
yum -y remove sendmail

安装 Mailx 程序

`yum -y install mailx

一般阿里云是自带mailx的,建议可以把之前的卸载了然后在重装一遍。

配置 SMTP 发送邮件

一般邮件服务器会提供 smtp、smtps 和 smtp starttls 服务来发送邮件。smtp 最简单的,也最不安全的,不建议使用,最好使用 smtps 或者 smtp starttls 来发送邮件。我们就用 QQ 邮箱来举例说明怎么配置 Mailx 的。Mailx 的配置文件为 /etc/mail.rc,编辑这个文件,加入以下配置。
stemp方式发送邮件配置

set from=usernam@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=username@qq.com
set smtp-auth-password=passwd
set smtp-auth=login

这是最常见也是最简单的一种配置模板,修改好了之后就可以直接尝试发送。
发送邮件:

mail -s "test"(发送的主题)   想要发送的邮箱(xxxx@qq.com)
hello(输入想发送的内容)
EOT(ctrl+D)

假如能发送成功就可以不用看后面的了,加入发送出去之后出现的是这个提示,那么请继续看后面的文章。

在这里插入图片描述

smtps 方式发送邮件配置

set from=xxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=xxx
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb

from: 当别人收到邮件时显示的发件人。默认是"当前用户id"@“主机名”,所以极有可能是"root@localhost"哦,至于你这样发出去,会不会被别人家的邮件服务器当垃圾拒收,俺就不随意猜测了。但这样,默认也不方便回复邮件啊,所以还是设置设置吧。
smtp: 指定别人家的服务器地址。
smtp-auth: 指定SMTP的认证方式。如果你不设置的话,默认是LOGIN方式,当然你可以根据需要改成CRAM-MD5或PLAIN方式。
smtp-auth-user: 指定用户名。
smtp-auth-password: 指定密码。(这个密码指的是你在QQ或者163邮箱里面开启服务获得的授权码)
/etc/pki/nssdb/里面存放的是ssl证书,这个是自带的证书文件
配置完之后就可以尝试发送邮件试试了,假如能发送就表示可行,如果还是不能发送,就可以再尝试一下starttls 方式发送邮件。
starttls 方式发送邮件配置

set smtp-use-starttls
set nss-config-dir=/etc/pki/nssdb
set ssl-verify=ignore
set smtp=smtp.qq.com:587
set smtp-auth=login
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=xxx
set from=xxx@qq.com

加入上面配置保存以后,运行以下命令测试发送邮件,如果没有意外,我们的邮箱很快就能收到从服务器发过来的测试邮件了。

echo "Hello" | mail -v -s "test" xxx@qq.com

使用上面的配置,邮件是完全能够发出去的,但是发送邮件的时候会提示 “Error in certificate: Peer’s certificate issuer is not recognized.”提示,运行以下命令生成一个证书即可

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

生成完成之后,修改 mail.rc 邮件配置,修改 nss-config-dir 为上面命令生成的 /root/.certs,保存即可。
这上面这一步不做修改也是可以运行的,因为/etc/pki/nssdb里面本身也自带有证书。
第一种方法mailx默认发送的方式是在25端口,但阿里云、腾讯云等都禁止了端口号25。因此第二种方法配置的是ssl 465端口,但是这种方法在阿里云云服务器的身上还是行不通,所以我才尝试了第三种方法,另外配置其他的端口,最后发现发送成功。

具体的端口问题描述可以看一下这个:Centos7 配置 sendmail、postfix 端口号25、465
然后关于发送邮件要打开的服务:POP3、SMTP、IMAP 的作用和联系
最后配置成功看的一个配置模板:使用 Mailx 通过 SMTP 在 Centos 上发送邮件,解决 WordPress 发送邮件问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值