email versenden mit MAPI
-
Hallo,
ich habe im nezt folgenden Code zum Senden von emails gefunden:
void SendEMail( char *pszRecvAddress, //Email char *pszTitle, //Mail Title char *pszNotes, //Mail Content char *pszFileName //attachment file name ) { if ((NULL == pszRecvAddress) || (NULL == pszTitle) || (NULL == pszNotes) || (NULL == pszFileName) ) { printf("ERROR:NULL on SendEMail Function parameter!!!\n"); return; } ULONG uRetCode = 0; LPMAPISENDMAIL lpMAPISendMail = NULL; HMODULE hLibMAPI = NULL; MapiRecipDesc ReceiverInfo = {0, MAPI_TO, "", pszRecvAddress,0, 0}; MapiFileDesc AttachmentInfo = {0, 0, 0xFFFFFFFF, pszFileName,"", NULL}; MapiMessage MailInfo = { 0, pszTitle, pszNotes, NULL, NULL, NULL, MAPI_SENT, NULL, 1, &ReceiverInfo, 1, &AttachmentInfo }; hLibMAPI = ::LoadLibrary("MAPI32.DLL"); if (NULL == hLibMAPI) { printf("ERROR on Load MAPI32.DLL file!!! Cancel to auto send mail!!!\n"); return; } lpMAPISendMail = (LPMAPISENDMAIL)::GetProcAddress(hLibMAPI,"MAPISendMail"); if (NULL == lpMAPISendMail) { printf("ERROR on Get MAPISendMail Function Address!!! Cancel to auto send mail!!!\n"); goto ERR_EXIT; } uRetCode = lpMAPISendMail(0L, 0L, &MailInfo, 0, 0); if (SUCCESS_SUCCESS == uRetCode) { printf( "Success to Send mail to: %s, Mail Title:%s, Mail Notes:%s,Attachment file name:%s\n", pszRecvAddress, pszTitle, pszNotes, pszFileName ); } else { printf("ERROR:failed Send mail!\n"); } ERR_EXIT: if (NULL != hLibMAPI) { ::FreeLibrary(hLibMAPI); hLibMAPI = NULL; } return;Kompilert wird das ganze ohne Fehler.
Testen wollt ich soint main(int argc, char *argv[]) { SendEMail("test@test.de","test","test text",""); }natürlich mit einer funktionierenden emailadresse.
Meine WIN.INI habe ich kontrolliert, da steht unter [MAIL] MAPI=1, also ist der Dienst vorhanden. Outlook meldet sich auch mit "Eine Anwendung versucht automatisch Nachrichten in ihrem Auftrag zu senden. Möchten Sie dies zulassen?"
Wenn ich das dann mit ja bestätige bekomme ich vom Programm aber die FehlermeldungERROR:failed Send mail!
Kann mir jemand weiterhelfen bei dem Problem!?
Danke & Gruß