Odesílání e-mailu v C++ pomocí COM
Vložil Prasatko, So, 2006-02-25 13:07
Ukázka, jak odeslat e-mail pomocí COM komponenty v C++:
#include <iostream> #include <comdef.h> #include <direct.h> #include <string.h> #include "cdosys.h" #include "cdosys_i.c" #include "cdosysstr.h" #include "cdosyserr.h" using namespace CDO; using namespace std; void main() { IUnknown* pUnknown; IMessage* pMsg = NULL; IBodyPart* pBp = NULL; IConfiguration* pConfig = NULL; Fields* pFlds = NULL; Field* pFld = NULL; HRESULT hr = S_OK; hr = CoInitialize(NULL); if(FAILED(hr)) cout << "Nelze inicializovat..." << endl; cout << "Volam CoCreateInstance pro Message." << endl; hr = CoCreateInstance(CLSID_Message, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnknown); if(FAILED(hr)) cout << "Nelze zalozit instanci komponenty. " << endl; cout << "Volam QueryInterface na IMessage." << endl; hr = pUnknown->QueryInterface(IID_IMessage, (void**)&pMsg); if(FAILED(hr)) cout << "Nepodporovane rozhrani IMessage. " << endl; cout << "Uvolnuji IUnknown." << endl; pUnknown->Release(); char komu[256]=""; cout << "Zadejte, komu odeslat email:" << endl; cin >> komu; cout << "Vyplnuji Message" << endl; pMsg->put_To(_bstr_t(komu)); pMsg->put_From(_bstr_t("pausp1@km1.fjfi.cvut.cz")); pMsg->put_Sender(_bstr_t("pausp1@km1.fjfi.cvut.cz")); pMsg->put_Subject(_bstr_t("Petr Paus")); pMsg->put_TextBody(_bstr_t("pausp1@km1.fjfi.cvut.cz")); char path[256]; cout << "Priloha: "; _getcwd(path,255); strcat(path,"\\main.cpp"); cout << path << endl; pMsg->AddAttachment(_bstr_t(path),L"",L"",&pBp); pBp->put_ContentMediaType(L"text/plain"); cout << "Uvolnuji BodyPart" << endl; pBp->Release(); pBp = NULL; cout << "Volam CoCreateInstance pro Configuration" << endl; hr = CoCreateInstance(CLSID_Configuration, NULL, CLSCTX_INPROC_SERVER,IID_IConfiguration, (void**)&pConfig); if(FAILED(hr)) cout << "Nelze zalozit instanci komponenty." << endl; cout << "Vyplnuji Configuration" << endl; pConfig->get_Fields(&pFlds); pFlds->get_Item(_variant_t(cdoSendUsingMethod),&pFld); pFld->put_Value(_variant_t((long)cdoSendUsingPort)); pFld->Release(); pFld=NULL; pFlds->get_Item(_variant_t(cdoSMTPServer),&pFld); pFld->put_Value(_variant_t("mail.bluetone.cz")); pFld->Release(); pFld=NULL; pFlds->get_Item(_variant_t(cdoSMTPServerPort),&pFld); pFld->put_Value(_variant_t((long)25)); pFld->Release(); pFld=NULL; pFlds->get_Item(_variant_t(cdoSMTPAuthenticate),&pFld); pFld->put_Value(_variant_t((long)cdoAnonymous)); // 0 pFld->Release(); pFld=NULL; pFlds->Update(); pFlds->Release(); pFlds=NULL; cout << "Zapisuji a uvolnuji Configuration" << endl; pMsg->putref_Configuration(pConfig); pConfig->Release(); pConfig=NULL; cout << "Odesilam EMAIL" << endl; pMsg->Send(); cout << "Uvolnuji IMessage." << endl; pMsg->Release(); cout << "Uninitialize" << endl; CoUninitialize(); }
- 6975 x přečteno
Tags: