Go smtp.SendMail的X509证书问题

时间:2014-09-22 17:29:04

标签: ssl go smtp

当使用Go的smtp.SendMail向support@groupsio.zendesk.com发送电子邮件时,我收到以下错误:

x509:证书对mx.zendesk.com,www.mx.zendesk.com有效,而不是mail.pod-4.int.zendesk.com

在调用SendMail之前,我在groupsio.zendesk.com上进行MX查找,返回mail.pod-4.int.zendesk.com。所以,我传递给SendMail的地址是mail.pod-4.int.zendesk.com:25。

这曾经有用,但有些东西坏了,我无法弄清楚出了什么问题。如果我从Gmail发送邮件到support@groupsio.zendesk.com,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

使用http://www.checktls.com/,很明显Zendesk TLS证书不正确,因为它没有指定mail.pod-4主机。但是,您仍然可以使用证书来加密消息;你可能很容易受到中间人攻击。

Go TLS库有一个配置标志InsecureSkipVerify,当设置为true时,将继续使用此证书/主机组合。无法在smtp.SendMail级别指定该标志。如果您希望继续发送电子邮件,则需要克隆smtp库,并在第283行的smtp.SendMail中,将InsecureSkipVerify标志设置为true。

我不清楚Gmail是否在功能上这样做,或者我在某处遗漏了某个细节。