阿里云SMTP邮件服务器mailx

一 环境准备

系统环境:CentOS 7.4
邮箱类型:腾讯邮箱
PS1:首先要保证你的腾讯邮箱开启了SMTP服务。
PS2:阿里云465端口要开放

二  安装mailx

yum -y install mailx

三 配置mail.rc文件

vi /etc/mail.rc

#你的邮箱账号
set from=*****@qq.com
#邮箱所在服务器和端口地址
#set smtp=smtps://smtp.exmail.qq.com:465#阿里云报错,收不到邮件
#set smtp=smtp.qq.com  #阿里云收不到邮件
#set smtp=smtps://smtp.qq.com:465 #正常收到邮件,有错误输出
set smtp=smtps://smtp.qq.com  #正常收到邮件,有错误输出
#邮箱
set smtp-auth-user=******@qq.com
#授权码
set smtp-auth-password=****
#默认login即可
set smtp-auth=login
#ssl认证方式
set ssl-verify=ignore
#证书所在目录,这个可以自定义目录所在位置
set nss-config-dir=/data/mail/certs

四 配置数字证书

[root@izwz9hcixm5361yy4uz40az ~]# mkdir -p /data/mail/certs
[root@izwz9hcixm5361yy4uz40az ~]# cd /data/mail/certs
####请求证书
[root@izwz9hcixm5361yy4uz40az certs]# echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > qq.crt
####添加一个证书到证书数据库中
[root@izwz9hcixm5361yy4uz40az certs]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d /data/mail/certs/ -i /data/mail/certs/qq.crt
[root@izwz9hcixm5361yy4uz40az certs]# certutil -A -n "GeoTrust Global CA" -t "C,," -d /data/mail/certs/ -i /data/mail/certs/qq.crt
[root@izwz9hcixm5361yy4uz40az certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i /data/mail/certs/qq.crt
[root@izwz9hcixm5361yy4uz40az certs]# certutil -L -d /data/mail/certs/

五 发送测试邮件


echo "邮件测试" |mail -s "测试" xxx@qq.com 

 邮件能发送成功,但是有错误提示Error in certificate: Peer's certificate issuer is not recognized.

忽略错误

echo "邮件测试" |mail -s "测试" xxx@qq.com &>/dev/null

或者

echo "邮件测试" |mail -s "测试" xxx@qq.com 2>/dev/null


发送文件的另外几种格式


cat file.txt | mail -s "邮件主题" xxx@qq.com
mail -s "邮件主题" xxx@qq.com < file.txt
echo "邮件测试" |mail -s "测试" xxx@qq.com

### Linux 上安装 Mailx 并配置邮件服务器 在Linux环境中,为了使Mailx能够正常工作并成功发送电子邮件,需要确保Sendmail或其他MTA(邮件传输代理)已正确安装和配置。对于基于Red Hat的企业级操作系统及其衍生版本而言,可以通过YUM来完成必要的软件包安装。 #### 安装 Sendmail 和 Mailx 通过执行命令`yum install sendmail mailx -y`可以一次性安装sendmail以及mailx这两个组件[^1]。这一步骤会自动处理依赖关系并将所需文件下载到本地系统中。 #### 启动与管理 Sendmail 服务 一旦安装完毕,则需对sendmail服务的状态进行控制以便于后续操作: - `systemctl start sendmail.service`: 开启sendmail服务。 - `systemctl restart sendmail.service`: 对sendmail服务做出更改后重新加载设置。 - `systemctl status sendmail.service`: 查看当前运行状况以确认其是否处于活动状态。 - `systemctl stop sendmail.service`: 停止正在运行的服务实例。 - `systemctl enable sendmail.service`: 设置开机自启动选项使得每次计算机重启之后无需手动激活该功能即可正常使用[^2]。 #### QQ SMTP 邮件服务配置 针对特定情况下的SMTP认证失败问题,在某些情况下可能是因为SSL证书验证过程中出现了异常。当尝试连接至QQ邮箱作为外部发信方时,可能会遭遇类似于“Peer’s certificate issuer has been marked as not trusted by the user”的警告信息。此时应当按照如下方式进行调整: - 登录QQ邮箱账户,并前往安全中心页面开启POP3/IMAP/SMTP协议支持权限。 - 修改/etc/mail/sendmail.mc 文件加入定义用于绕过不受信任CA签发的SSL/TLS证书校验的相关参数,如:define(`confSSLCERTIFICATE_FILE', `/etc/pki/tls/certs/ca-bundle.crt')dnl define(`confCACERT_PATH', `/etc/pki/tls/cacert.pem')dnl makemap hash /etc/mail/access.db < /etc/mail/access - 更新sendmail配置使之生效:make -C /etc/mail; service sendmail reload 或者 systemctl restart sendmail.service[^3] #### SELinux 及防火墙设置 考虑到SELinux的安全策略可能导致部分端口被封锁从而影响外网通信质量;另外默认启用状态下firewalld也可能成为阻碍因素之一。因此建议采取适当措施规避上述风险点: - 执行setenforce 0可立即禁用SELinux而不必修改配置文件; - 使用`systemctl stop firewalld.service`暂停防火墙运作直至下一次重引导为止; - 如果打算长期保持开放则应考虑将对应规则添加入永久性配置当中去[^4]。 ```bash # 关闭 selinux setenforce 0 # 检查 postfix 是否存在 rpm -qa | grep postfix # 停止 firewall systemctl stop firewalld.service ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值