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

原始问题背景:

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

于是配置了新的邮箱[email protected]用于告警。

新问题如下

[[email protected]_master ~]# tail -n 5 /etc/mail.rc //查看mail.rc的邮箱配置
#setting for zabbix 
set [email protected] smtp=smtp.163.com 
set smtp-auth-user=qixin_monitor smtp-auth-password=test_haha16
set smtp-auth=login
[[email protected]_master ~]# echo “mail content”|mail -s test [email protected]
[[email protected]_master ~]# smtp-server: 550 User has no permission //550报错
"/root/dead.letter" 11/316
. . . message not sent.

报错显示用户没有权限,而之前的邮箱[email protected]却是OK的

1. 查找两个邮箱的配置


发现两个邮箱的POP3/SMTP/IMAP的状态不一致,于是开通[email protected]的客户端授权密码。

2. 开通客户端授权密码

 

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

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

3. 测试邮箱发送

[[email protected]_master ~]# echo “mail content”|mail -s test [email protected]

[[email protected]_master ~]# smtp-server: 535 Error: authentication failed

"/root/dead.letter" 11/316

. . . message not sent.

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

4. 手动测试密码

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

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

[[email protected]_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)测试原来的[email protected]

发现竟然可以成功登陆。

[[email protected]_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网页邮箱继续查看,发现如下区别

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

这个是之前注册邮箱,也就是[email protected]的配置,开通了SMTP服务,但是并没有开通客户端授权密码,因为并没有使用期IMAP服务。

结论:

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

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

于是乎,竟然成功了!

[[email protected]_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的值从实际密码修改成了客户端授权密码。

[[email protected]_master ~]# tail -n 5 /etc/mail.rc

#setting for zabbix

set [email protected] smtp=smtp.163.com

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

set smtp-auth=login

时间: 2024-12-10 13:44:57

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

邮件发送失败,Sendmail Headers too large

今天遇到一个奇怪问题,用户反馈邮件发送失败.远程查查吧,大小.收件人等等啥的都未超限制.怪了 . ??于是与用户了解发送时间,去邮件系统服务器sendmail日志查,发现关键信息"stat=Headers too large (32768 max)".哈哈,原来是邮件头超了,再查查用户foxmail那封邮件,查查邮件源码,发现源码中 References:字段的内容太多,从14年到18年的信息都有.原来是用户习惯在邮件的基础上点击全部回复,于是一封14年写的邮件,就重复重复再重复,一直

邮件发送失败问题:Sending the email to the following server failed : smtp.qiye.163.com:25

[邮件发送错误] : Sending the email to the following server failed : smtp.qiye.163.com:25, {}org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.qiye.163.com:25 at org.apache.commons.mail.Email.sendMimeMessage(Ema

zabbix监控及邮件报警

一.zabbix 客户端的安装既然要监控我们就要添加要监控的主机,在添加主机之前我们首先要在被检测主机上面安装agent,安装 agent 比较简单,我们也是按照安装 server 的流程,下载软件包,在编译的时候,我们只选择 agent192.168.1.20 作为 zabbix 的被监控端,提供 web 和 mysql 应用1.安装 Zabbix,配置 Zabbix agent:21 rz (上传zabbix-3.2.1.tar.gz)22 ls23 tar zxf zabbix-3.2.1

Zabbix 监控交换机 邮件报警

Zabbix监控交换机设置方法 Zabbix邮件报警设置方法

java:邮件发送失败总结(只是外网服务器有问题)

案例一: 运行环境比较 1.本地用同样的代码.系统环境及发邮件的帐号是没有问题的: 2.外网其它服务器项目使用相同技术也没有问题: 问题现象 邮件模板中某链接(如:"http://www.baidu.com/...")在邮箱发送后自动执行了,导致其它业务出错. 处理方式     1.处理前:"http://www.baidu.com/..."这部分字符串是在发邮件时整个填充到邮件模板中某个变量:        2.处理后:"http://"固定在

Zend_Mail 邮件发送(SMTP方式)

Zend_Mail邮件发送 转载请注明出处,尊重原创:http://blog.csdn.net/a437629292/article/details/41700009 一. 邮件发送方式: 1.直接邮件服务器发送: 直接使用邮件服务器发送,也就是php程序所在服务器上本来就是邮件服务器(即配置成SMTP邮件服务器),并且发送到的对方也必须是邮件服务器,比如QQ邮箱,163邮箱等等,他们直接也是使用SMTP协议 2. 委托其他邮件服务器发送: php程序委托其他邮件服务器发送邮件(必须条件:该服务

Contact Form 7邮件发送失败的解决办法

一.contact form 7无法发送邮件的原因 对mail()函数的不支持. Contact Form 7表单提交失败在使用过程中会出现,归根结底原因在于wordpress主机问题,由于国 内很多主机并不是wordpress专用主机,采用的是所谓的全能WIN+IIS+PHP,而这样的环境很少支持wordpress本身的mail()发 送邮件函数.所以导致Contact Form 7表单提交失败的原因.这也引出WP Mail SMTP设置问题. 二.解决方法 解决这个问题有两点 1.下载一个插

腾讯企业邮箱外域邮件发送失败原因及其解决方案

如何设置外域邮箱的SPF为了提升外域邮箱(如Gmail)发送至腾讯邮箱邮件的成功率,建议您给自己的域名设置一条TXT记录来避免这种情况.TXT记录值为:v=spf1 ip4:发信ip ~all如图:万网的设置页面 1.从diy.hichina.com处登录域名管理系统;2.在TXT(正文字串)处设置一条TXT记录(假设发信ip为“5.5.5.5”),如下: 如果您不是万网用户,建议咨询您所在域名服务商. 550 Mailbox unavailable or access denied出错原因:您

用python 发送一个smtp邮件

用python写一个简单的邮件,需要发送的邮件内容自定义,可用于监控警告邮件发送. #!/usr/bin/env python import smtplib    //内置smtp库 import string HOST = "smtp.163.com"    //定义用于发送邮件的主机,这里用网易163 SUBJECT = "Test email from Python"    //定义邮件标题 TO = "[email protected]"