Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535

简介:

原始问题背景:

前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来。因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通过网页发送邮件也同样报错,估计是邮件防垃圾服务进行了限制,需要等到第二天才能恢复(第二天确实恢复正常),但是当天如果需要继续使用zabbix的邮箱监控的话,只能通过更换告警邮箱。

于是配置了新的邮箱qixin_monitor@163.com用于告警。


新问题如下

1
2
3
4
5
6
7
8
9
[root@zabbix_master ~] # tail -n 5 /etc/mail.rc //查看mail.rc的邮箱配置
#setting for zabbix 
set  from=qixin_monitor@163.com smtp=smtp.163.com 
set  smtp-auth-user=qixin_monitor smtp-auth-password=test_haha16
set  smtp-auth=login
[root@zabbix_master ~] # echo “mail content”|mail -s test 17701754487@163.com
[root@zabbix_master ~] # smtp-server: 550 User has no permission //550报错
"/root/dead.letter"  11 /316
. . . message not sent.


报错显示用户没有权限,而之前的邮箱clovemfeng@163.com却是OK的


1. 查找两个邮箱的配置

wKiom1YbXfSjigOPAAgjbD33wMk108.jpg


wKioL1YbXoGhwqQgAAhU9vOpKp4771.jpg

发现两个邮箱的POP3/SMTP/IMAP的状态不一致,于是开通qixin_monitor@163.com的客户端授权密码。

2. 开通客户端授权密码

wKioL1YbXvih01XPAAL5JMdLkh0229.jpg

wKioL1YbXvjTQ7HcAAHnQ2bOl1Y180.jpg

wKiom1YbX02hNhwuAAOfj0jYdcg457.jpg

 

该步骤是需要手机号码验证并绑定手机的

假设其客户端授权密码为:fdfdterefcstewrere



3. 测试邮箱发送

[root@zabbix_master ~]# echo “mail content”|mail -s test 17701754487@163.com

[root@zabbix_master ~]# smtp-server: 535 Error: authentication failed

"/root/dead.letter" 11/316

. . . message not sent.

发现竟然报535错误,用户名与密码验证失败。

4. 手动测试密码

既然通过mail命令直接发送有问题,于是笔者做了如下几件事情:

(1)通过telnet命令验证用户名跟密码 

[root@zabbix_master ~]# telnet smtp.163.com 25

Trying 220.181.12.13...

Connected to smtp.163.com.

Escape character is '^]'.

220 163.com Anti-spam GT for Coremail System (163com[20141201])

HELO 163.COM

250 OK

AUTH LOGIN

334 dXNlcm5hbWU6

cWl4aW5fbW9uaXRvcg==

334 UGFzc3dvcmQ6

UWl4aW5AMTIz

535 Error: authentication failed

(其中用户名跟密码均做了base64编码转换,echo -n username/password |base64)

(2)测试原来的clovemfeng@163.com

发现竟然可以成功登陆。

[root@zabbix_master ~]# telnet smtp.163.com 25

Trying 220.181.12.13...

Connected to smtp.163.com.

Escape character is '^]'.

220 163.com Anti-spam GT for Coremail System (163com[20141201])

HELO 163.COM

250 OK

AUTH LOGIN

334 dXNlcm5hbWU6

Y2xvdmVtZmVuZw==

334 UGFzc3dvcmQ6

UXhAbW9uaXRvciMxMjM=

235 Authentication successful

(3)继续尝试?

 这两个账号有什么不同?初步看来,用户名跟密码不一样!! 用户名无法修改,那么我把密码改成一样的总行了吧?

但是结果仍旧是535 Error: authentication failed,后来甚至注册了一个用户名没有特殊字符,但是还是失败。

5. 回归邮箱设置检查

继续比对新老账号的区别,登陆163.com网页邮箱继续查看,发现如下区别

wKioL1YbX62iIjXgAAFynRq9O3M210.jpg

上图是今天刚刚开通SMTP/POP3/IMAP功能的邮箱配置,生成了客户端授权密码。

wKiom1YbYA6Chfe0AAGrj2fBpWU739.jpg

331758.png这个是之前注册邮箱,也就是clovemfeng@163.com的配置,开通了SMTP服务,但是并没有开通客户端授权密码,因为并没有使用期IMAP服务。

结论:

也就是说,以前注册的邮箱是不需要什么客户端授权密码的,而新注册的却需要这个东西。

那么,我们不管通过mail -s 也好,telnet smtp.163.com也好,角色都是客户端,那么尝试下将客户端授权密码作为配置密码试试?

于是乎,竟然成功了!

[root@zabbix_master ~]# telnet smtp.163.com 25

Trying 220.181.12.13...

Connected to smtp.163.com.

Escape character is '^]'.

220 163.com Anti-spam GT for Coremail System (163com[20141201])

EHLO 163.COM

250-mail

250-PIPELINING

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrFvEOrUCa0xDrUUUUj

250-STARTTLS

250 8BITMIME

AUTH LOGIN

334 dXNlcm5hbWU6

cWl4aW5fbW9uaXRvcg==

334 UGFzc3dvcmQ6

aXB2d2RjZW1oZGp5dnV0ZQ==

235 Authentication successful

问题,解了~最终配置如下,其实也就是将smtp-auth-password的值从实际密码修改成了客户端授权密码。

[root@zabbix_master ~]# tail -n 5 /etc/mail.rc

#setting for zabbix

set from=qixin_monitor@163.com smtp=smtp.163.com

set smtp-auth-user=qixin_monitor smtp-auth-password=fdfdterefcstewrere

set smtp-auth=login











本文转自 暗黑魔君 51CTO博客,原文链接:http://blog.51cto.com/clovemfong/1702105,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
网络协议 关系型数据库 Shell
gitlab-设置邮件SMTP以及GitLab收不到邮件的问题
gitlab-设置邮件SMTP以及GitLab收不到邮件的问题
534 1
|
7月前
|
网络安全 Python
IMAP SMTP有什么区别?不同代码示例
IMAP SMTP有什么区别?不同代码示例
|
7月前
|
安全 API 数据安全/隐私保护
邮箱SMTP怎么设置?设置aoksend步骤以及嵌入式代码
邮箱SMTP怎么设置?设置aoksend步骤以及嵌入式代码
|
13天前
|
监控 Java Shell
监控堆外第三方监控工具Zabbix
监控堆外第三方监控工具Zabbix
24 5
|
10天前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
28 9
|
9天前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
37 7
|
4月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
77 7
|
2月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
79 2
|
3月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
74 2
zabbix agent集成percona监控MySQL的插件实战案例