Platform SDK: MAPI |
This example shows the simplest way you can send a message. An essentially blank message is created and passed to the MAPISendMail function with parameters that cause Simple MAPI to use dialog boxes to create the content of the message. First, the client defines the variables it needs. Note that your client will not hard-code the attachment path name or filename in the MapiFileDesc structure.
// Example 1: // Send a mail message containing a file and prompt for // recipients, subject, and note text. ULONG err; MapiFileDesc attachment = {0, // ulReserved, must be 0 0, // no flags; this is a data file (ULONG)-1, // position not specified "c:\\tmp\\tmp.wk3", // pathname "budget17.wk3", // original filename NULL}; // MapiFileTagExt unused // Create a blank message. Most members are set to NULL or 0 because // MAPISendMail will let the user set them. MapiMessage note = {0, // reserved, must be 0 NULL, // no subject NULL, // no note text NULL, // NULL = interpersonal message NULL, // no date; MAPISendMail ignores it NULL, // no conversation ID 0L, // no flags, MAPISendMail ignores it NULL, // no originator, this is ignored too 0, // zero recipients NULL, // NULL recipient array 1, // one attachment &attachment}; // the attachment structure
Next, the client calls the MAPISendMail function and stores the return status so it can detect whether the call succeeded. You should use a more sophisticated error reporting mechanism than the C library function printf.
err = MAPISendMail (0L, // use implicit session. 0L, // ulUIParam; 0 is always valid ¬e, // the message being sent MAPI_DIALOG, // allow the user to edit the message 0L); // reserved; must be 0 if (err != SUCCESS_SUCCESS ) printf("Unable to send the message\n");