[Linux] 使用 Mailx 发送测试(邮件基于25、465端口配置,云服务器)

您所在的位置:网站首页 foxmail服务器端口如何设置 [Linux] 使用 Mailx 发送测试(邮件基于25、465端口配置,云服务器)

[Linux] 使用 Mailx 发送测试(邮件基于25、465端口配置,云服务器)

2024-06-09 18:07| 来源: 网络整理| 查看: 265

本文目的: 使用Mailx 在一台Linux服务器上测试STMP服务、或者在机器上有定时发送邮件的需求

系统相关:CentOS 8.X ,基于端口:25

操作步骤:

1、先安装Mailx服务

sudo yum install mailx -y

2、配置/etc/mail.rc文件 通过修改配置文件/etc/mail.rc可以使用外部SMTP服务器,从而实现在Linux端发邮件功能。

使用sudo vim /etc/mail.rc进入编辑模式,在配置文件顶部插入邮件配置信息:

# SMTP Config set nss-config-dir=/etc/pki/nssdb/ set smtp-use-starttls set smtp_sasl_auth_enable=yes set ssl-verify=ignore set bsdcompat set sendcharsets=iso-8859-1,utf-8 #set smtp-auth=plain set [email protected] set smtp=smtp://172.0.0.1 set [email protected] #set smtp-auth-password=P@ssord123

解释说明:

如果是使用的163网易、qq邮箱等,需要打开上述配置文件中的注释部分,既:set smtp-auth=plain 和 set smtp-auth-password= 且在 set smtp-auth-password=中需要填入密码或者授权码,但是一般企业级SMTP服务器一般是直接加入IP白名单,不需要密码/授权码授权,这样直接按照上述配置即可,需要将set smtp-auth=plain 和 set smtp-auth-password=注释掉,这样就不需要输入密码了。

3、测试邮件发送 直接执行如下管道命令即可,之后查收是否接收到测试邮件。

sudo echo "这是一封SMTP测试邮件,请无视!" | mailx -s "TESTING SMTP SERVER" [email protected]

在这里插入图片描述

mailx测试时参数说明

可以使用mailx --help来查看mailx的相关参数

[root@bluetatasub bin]$ mailx --help mailx: illegal option -- - Usage: mailx -eiIUdEFntBDNHRVv~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users

-s:主题 -c:抄送(或主送),多人用,隔开(博主测试使用空格分割也可以) -b:密送 -a:附件

多人发送邮件:

sudo echo "这是一封SMTP测试邮件,请无视!" | mailx -s "TESTING SMTP SERVER" [email protected] [email protected] 基于端口465进行配置

如果你使用的是某些国内的云ECS服务器,比如阿里云,腾讯云等,这些厂商默认把25端口封掉,所以此方法使用如下配置

在这里插入图片描述 1、创建SSL证书

mkdir -p /root/.certs/ echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt # 如果是126或者qq邮箱,把smtp.163.com:465中的163改掉即可 certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -L -d /root/.certs # 信任证书 cd /root/.certs certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

2、证书配置好后,更改/etc/mail.rc配置文件

set [email protected] set smtp=smtp.163.com set [email protected] set smtp-auth-password=你自己163客户端授权密码,不是你邮箱登陆密码 set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/root/.certs

3、登陆到云服务器中,发送测试邮件

echo "这是一封SMTP测试邮件,请无视!" | mailx -s "163 mail 测试" [email protected] ↗ ☆★ ↙ 1024 ↗☆★ ↙ 1024 ↗☆★ ↙ 1024 ↗ ☆ ** 这是一条分割线 ** ★ ↙ 1024 ↗ ☆★ ↙ 1024 ↗☆★ ↙ 1024 ↗☆★ ↙

Trouble shooting:

如果出现:could not initiate SSL/TLS connection: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed错误 解决办法:需要在/etc/mail.rc配置文件中加入:set ssl-verify=ignore

如果出现:smtp-server: 503 5.5.1 Error: authentication not enabled 解决办法:1. 检查用户名密码是否正确。2、如果是企业SMTP服务,没有用户名密码或无授权码,需要按照上述描述去掉/注释掉set smtp-auth=plain 和 set smtp-auth-password=

如果你用的是云服务器,并且使用了mailx作为zabbix告警媒介,如果zabbix不能通过mailx正常告警,但你又坚信自己zabbix配置没问题,那接受不到邮件应该是mailx的问题,修改mailx的配置如下:

配置文件中的 #set nss-config-dir=/root/.certs #注释掉改行,改成下面一行 #set nss-config-dir=/etc/pki/nssdb #最终配置如下: set [email protected] set smtp=smtp.163.com set [email protected] set smtp-auth-password=你自己163客户端授权密码,不是你邮箱登陆密码 set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/etc/pki/nssdb

注:本文原创由 bluetata 发布于: https://bluetata.blog.csdn.net/ 转载请务必注明出处。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3