自建域名发送邮件到邮箱身份验证失败的
本文分析并解答使用Golang自建域名邮箱向QQ邮箱发送邮件时遇到的身份验证失败问题(错误代码:535 error: authentication fled)。假设读者已了解客户端与服务器间的SMTP通信,但对服务器与服务器间的SMTP通信和错误处理尚存疑惑。
问题:代码使用smtp.PlainAuth函数尝试发送邮件,但在身份验证步骤(c.auth(a))失败。代码片段如下:
a := smtp.PlainAuth("", "one@mail.mydomain.me", "", "smtp.qq.com")
代码试图使用QQ邮箱的SMTP服务器(smtp.qq.com)进行身份验证,并使用one@mail.mydomain.me作为用户名。然而,smtp.qq.com是QQ邮箱的服务器,而非自建域名邮箱的服务器。 身份验证失败的原因正是使用了错误的SMTP服务器地址。
解决方法:smtp.qq.com应替换为自建域名邮箱服务器的地址。正确的流程是:先连接并登录自建域名邮箱服务器,然后才能通过该服务器向QQ邮箱(或其他邮箱)发送邮件。 代码错误地尝试直接使用QQ邮箱的SMTP服务器进行身份验证。
因此,需要修改smtp.PlainAuth函数的参数,使用自建域名邮箱服务器的正确地址、用户名和密码进行身份验证。 只有成功连接并登录自建邮件服务器后,才能经由其向外部邮箱发送邮件。