//////////////////////////////////////////////////////////////////////////// // // Crytek Engine Source File. // Copyright (C), Crytek Studios, 2001. // ------------------------------------------------------------------------- // File name: Mailer.cpp // Version: v1.00 // Created: 5/12/2001 by Timur. // Compilers: Visual C++ 6.0 // Description: Send Mail. // ------------------------------------------------------------------------- // History: // //////////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "Mailer.h" #define WIN32_LEAN_AND_MEAN #include #include #include "mailer.h" bool CMailer::SendMessage(const CString& subject, const CString& messageBody, const std::vector &_recipients, const std::vector &_attachments, bool bShowDialog) { CLogFile::WriteLine( "Sending mail" ); // Preserve directory, (Can be changed if attachment specified) char dir[MAX_PATH]; GetCurrentDirectory( sizeof(dir),dir ); // Load MAPI dll HMODULE hMAPILib = LoadLibrary("MAPI32.DLL"); LPMAPISENDMAIL lpfnMAPISendMail = (LPMAPISENDMAIL) GetProcAddress(hMAPILib, "MAPISendMail"); int numRecipients = (int)_recipients.size(); // Handle Attachments MapiFileDesc* attachments = new MapiFileDesc[_attachments.size()]; int i = 0; for(int k=0; k<_attachments.size();k++) { if (!PathFileExists( _attachments[k] )) continue; attachments[i].ulReserved = 0; attachments[i].flFlags = 0; attachments[i].nPosition = (ULONG)-1; attachments[i].lpszPathName = (char*)(const char*)_attachments[k]; attachments[i].lpszFileName = NULL; attachments[i].lpFileType = NULL; i++; } int numAttachments = i; // Handle Recipients MapiRecipDesc* recipients = new MapiRecipDesc[numRecipients]; std::vector addresses = _recipients; for (i = 0; i < addresses.size(); i++) { addresses[i] = CString("SMTP:")+addresses[i]; } for(i=0; i