Помогите с отправкой mail через СDO!!!!
От: wolverine  
Дата: 24.03.03 23:31
Оценка:
Вообщем такая проблема — есть такой исходник проблема в том, что вроде бы всё замечательно без глюков,
возвращает всё как положенно только вот вопрос НИЧЕГО не приходит на ящик, подозрения на проблему аунтетфикцию на SMTP
сервере, вопрос что за поле cdoSMTPAccountName и чем оно отличаеться от cdoSendUserName и что должно быть в полях для
динамически создаваемой конфигурации?Или может быть я ошибаюсь и глюк в другом?


CoInitialize(NULL);
_StreamPtr    Stm;
_bstr_t       filepath;
HRESULT hr = S_OK;

CComPtr<IConfiguration> pConf;
hr = pConf.CoCreateInstance(L"CDO.Configuration");

CComPtr<Fields> pFields;
hr = pConf->get_Fields(&pFields);

CComPtr<Field> pfld;
hr = pFields->get_Item(CComVariant(cdoSMTPServer),&pfld);
hr = pfld->put_Value(CComVariant("smtp.mail.ru"));

pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSendEmailAddress),&pfld);
hr = pfld->put_Value(CComVariant("""+m_name+"" "+m_email));//some e-mail & name

pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSTMPAuthenticate),&pfld);
hr = pfld->put_Value(CComVariant((long)cdoBasic));
     
pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSendUserName),&pfld);
hr = pfld->put_Value(CComVariant(m_user));//??????????

pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSendPassword),&pfld);
hr = pfld->put_Value(CComVariant(m_passw));
            
                
pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSMTPServerPort),&pfld);
hr = pfld->put_Value(CComVariant((long)m_port));

pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSMTPAccountName),&pfld);
hr = pfld->put_Value(CComVariant(m_acc));//??????????????
                
pfld = NULL;
hr = pFields->get_Item(CComVariant(cdoSendUsingMethod),&pfld);
hr = pfld->put_Value(CComVariant((long)cdoSendUsingPort));
hr = pFields->Update();

CComPtr<IMessage> pMsg;
pMsg.CoCreateInstance(L"CDO.Message");
pMsg->putref_Configuration(pConf);
                
BSTR tmpBSTR = m_to.AllocSysString();
pMsg->put_To(tmpBSTR);
::SysFreeString(tmpBSTR);
tmpBSTR = m_from.AllocSysString();
pMsg->put_From(tmpBSTR);
::SysFreeString(tmpBSTR);
tmpBSTR = m_subj.AllocSysString();
pMsg->put_Subject(tmpBSTR);
::SysFreeString(tmpBSTR);
tmpBSTR = m_letter.AllocSysString();
pMsg->put_TextBody(tmpBSTR);
::SysFreeString(tmpBSTR);

pMsg->Send();
                
CoUninitialize();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.