邮件内容包含“\n”会导致windows平台的邮件服务器报451错误,但是linux的则不会
好不容易从发送邮件的坑里面爬出来了
最近几天,想通过程序实现邮件报警功能,可是发现了一个问题,发送到我自己的邮件服务器啥问题没有,但是发送到公司的邮件服务器会返回451错误码,但是没说明具体内容,可把我忙坏了,一两周的时间都在弄这个,因为不确定到底是发送邮件的代码有问题,还是公司的邮件服务器有问题,只好一个一个的对比测试,再加上网上找方法,结果出来了。。。
比如以下的代码:
m_MailContent.push_back(“MIME-Versioin: 1.0\n”);
在基于linux平台的邮件服务器上是一点都没问题的,但是对于windows平台的邮件服务器,它会严格的校验发送内容,“\n”是不被允许的,如果换行应该写作“\r\n”
还有包括ctime()这个函数会返回”\n”的在邮件的内容中嵌入这些代码都会导致451错误
