使用EurekaLog将错误以邮件的形式发送时,发现使用SMTP Client方式发送邮件时不能成功,到网上搜索了一下,有说是邮件8bit mime编码格式的问题(我上个博客中提到过),也有说是多发送了个REST(RSET)指令问题,我测试了一下,发现可能是旧版本中是这种问题,我现在使用的是EurekaLog 6.0.21 R2 Enterprise(D2010),仔细研究发送失败错误,发现是发送邮件时验证身份问题(仍然要求支持8bit mime,测试sina支持),找到安装目录下的ExceptionLog.pas文件,从10850行开始:
1 if ((Pos('"', AFrom) = 0) and (Pos('<', AFrom) = 0)) then
2 FromStr := ('"' + LoggedUserName + '" <' + OneString(AFrom) + '>')
3 else
4 FromStr := OneString(AFrom);
5
6
2 FromStr := ('"' + LoggedUserName + '" <' + OneString(AFrom) + '>')
3 else
4 FromStr := OneString(AFrom);
5
6
将FromStr给多加了些信息,注释掉上面的信息,然后使用下面的语句:
1 FromStr := OneString(AFrom);
再测试,SMTP Client方式发送邮件成功!
(不知道是不是还有别的解决方法,或者通过其它设置可以完成,反正我测试简单修改后就可以正常发送了)