Kbase P97209: How to send mail using Microsoft Messaging Application Program Interface (MAPI)?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/25/2007 |
|
Status: Unverified
GOAL:
How to send mail using Microsoft Messaging Application Program Interface (MAPI)?
FIX:
This solution demonstrates a method of sending mail with attachments using MAPI:
/* ******** Variable Definitions ************ */
DEFINE VARIABLE chSession AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chMessage AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chRecip AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chFiles AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE iLoop AS INTEGER NO-UNDO.
/* ************* Send A Message ************* */
RUN SendMail
(
INPUT "",
INPUT 2,
INPUT "MAPI Test",
INPUT "This is a test.",
INPUT "address1@progress.com,address2@progress.com",
INPUT "C:\WRK91D\test.txt"
).
/* *************** Clean Up ***************** */
RUN ReleaseObjects.
/* ********** Internal Procedures ********* */
PROCEDURE SendMail:
/* Input parameters */
DEF INPUT PARAMETER cProfile AS CHAR NO-UNDO.
DEF INPUT PARAMETER iPriority AS INT NO-UNDO.
/* Low = 0; Normal = 1; High = 2 */
DEF INPUT PARAMETER cSubject AS CHAR NO-UNDO.
DEF INPUT PARAMETER cText AS CHAR NO-UNDO.
DEF INPUT PARAMETER cTo AS CHAR NO-UNDO.
DEF INPUT PARAMETER cFiles AS CHAR NO-UNDO.
/* Connection */
CREATE "MAPI.SESSION" chSession.
chSession:Logon(cProfile).
/* Message Creation */
ASSIGN
chMessage = chSession:OutBox:Messages:Add()
chMessage:Subject = cSubject
chMessage:Text = cText
chMessage:importance = iPriority.
/* Send To */
DO iLoop = 1 TO NUM-ENTRIES(cTo):
ASSIGN
chRecip = chMessage:Recipients:Add()
chRecip:Name = ENTRY(iLoop, cTo)
chRecip:Type = 1.
chRecip:Resolve.
END.
/* Attachments */
DO iLoop = 1 TO NUM-ENTRIES(cFiles):
ASSIGN
chMessage:Text = chMessage:Text + CHR(10)
chFiles = chMessage:Attachments:ADD()
chFiles:name = ENTRY(iLoop, cFiles)
chFiles:source = ENTRY(iLoop, cFiles).
END.
/* Send message */
chMessage:Update(TRUE, TRUE).
chMessage:Send(TRUE, FALSE).
chSession:Logoff.
END PROCEDURE.
PROCEDURE ReleaseObjects :
&nbs.p; RELEASE OBJECT chRecip.
RELEASE OBJECT chMessage.
RELEASE OBJECT chSession.
RELEASE OBJECT chFiles.
END PROCEDURE..