Email CDO HELO剥离特殊字符,导致中继被拒绝
我有一个C++代码,它利用CDO根据触发事件发送电子邮件。我已经在下面包含了部分代码。问题在于,当应用程序在带有嵌入式破折号的服务器上运行时,如server-ABC-123,客户站点上的一些邮件服务器将拒绝该请求,并在中继拒绝时出现550错误。HELO数据包包含服务器名,其中带破折号,我认为这是问题的根本原因 是否有强制CDO包含FQDN的方法 这是SMTP跟踪信息 客户端=>服务器:HELO SMCABUTELC03\x0d\x0a 服务器=>客户端:250 int2.unimax.pvt你好sm-cabu-telc03.swna.wdpr.unimax.com[192.168.24.25],很高兴认识您\x0d\x0a 客户端=>服务器:邮件发件人:\x0d\x0a 服务器=>客户端:550 5.7.1。。。转播被拒绝。邮寄地址:corp.2n。admin@sm-cabu-telc03.swna.wdpr.unimax.com不以SMCABUTELC03\x0d\x0a结尾Email CDO HELO剥离特殊字符,导致中继被拒绝,email,cdo.message,Email,Cdo.message,我有一个C++代码,它利用CDO根据触发事件发送电子邮件。我已经在下面包含了部分代码。问题在于,当应用程序在带有嵌入式破折号的服务器上运行时,如server-ABC-123,客户站点上的一些邮件服务器将拒绝该请求,并在中继拒绝时出现550错误。HELO数据包包含服务器名,其中带破折号,我认为这是问题的根本原因 是否有强制CDO包含FQDN的方法 这是SMTP跟踪信息 客户端=>服务器:HELO SMCABUTELC03\x0d\x0a 服务器=>客户端:250 int2.unimax.pvt你好
CDO::IMessage* cdoMessage = NULL;
CDO::IConfiguration* cdoConfiguration = NULL;
cdoConfiguration->get_Fields(&cdoFields);
cdoFields->get_Item( _variant_t( cdoSendUsingMethod), &cdoField1);
cdoField1->put_Value( _variant_t( (long) CDO::cdoSendUsingPort));
cdoField1->Release();
cdoField1 = NULL;
cdoFields->get_Item( _variant_t( cdoSMTPServer), &cdoField2);
cdoField2->put_Value( _variant_t( emailHostName.gets()));
cdoField2->Release();
cdoField2 = NULL;
cdoFields->get_Item( _variant_t( cdoSMTPServerPort), &cdoField3);
cdoField3->put_Value( _variant_t( emailHostPort));
cdoField3->Release();
cdoField3 = NULL;
cdoFields->get_Item( _variant_t( cdoSMTPAuthenticate), &cdoField4);
if ( emailUserName.size() == 0 )
{
cdoField4->put_Value( _variant_t( (long) CDO::cdoAnonymous));
}
else
{
cdoField4->put_Value( _variant_t( (long) CDO::cdoBasic));
}
cdoField4->Release();
cdoField4 = NULL;