The AccuTerm forum has moved. Go to community.rocketsoftware.com to register for the new Rocket forum. |
Outlook Express |
Post Reply |
Author | |
piotr
Beta Tester Joined: March 05 2005 Location: Poland Status: Offline Points: 37 |
Post Options
Thanks(0)
Posted: August 26 2009 at 2:31am |
I use a subroutine supplied within Accuterm to compose and send mails via Outlook Express. Changing the 4th parameter in MAPISendMail one can make the program either to send mail automatically (a need to confirm which can be avoided using a 3rd party program) or setting it to an 8 then the composed mail is displayed for inspection, ready for sending.
SCRIPT = SCRIPT : 'rc = MAPISendMail(0, 0, msg, 0, 0)' : EM; * unattended (almost) SCRIPT = SCRIPT : 'rc = MAPISendMail(0, 0, msg, 8, 0)' : EM; * mail displayed by OE SUBROUTINE AT.SEND.EMAIL2(ADDRESS, SUBJECT, MESSAGE, ATTACH) * 05/14/01 02:00PM * ADDRESS: recipient's email address * SUBJECT: one-line email subject * MESSAGE: multi-line email message (lines separated by AM) * ATTACH: optional attachment file name EQU AM TO CHAR(254), VM TO CHAR(253), SVM TO CHAR(252) EQU ESC TO CHAR(27), STX TO CHAR(2), CR TO CHAR(13) EQU EM TO CHAR(25) RECIP.CNT = DCOUNT(ADDRESS, AM) ATTACH.CNT = DCOUNT(ATTACH, AM) * SCRIPT = '' SCRIPT = SCRIPT : 'SendMessage' : EM SCRIPT = SCRIPT : 'End Sub' : EM SCRIPT = SCRIPT : 'Type MapiMessage' : EM SCRIPT = SCRIPT : 'Reserved As Long' : EM SCRIPT = SCRIPT : 'Subject As String' : EM SCRIPT = SCRIPT : 'NoteText As String' : EM SCRIPT = SCRIPT : 'MessageType As String' : EM SCRIPT = SCRIPT : 'DateReceived As String' : EM SCRIPT = SCRIPT : 'ConversationID As String' : EM SCRIPT = SCRIPT : 'Flags As Long' : EM SCRIPT = SCRIPT : 'Originator As Long' : EM SCRIPT = SCRIPT : 'RecipCount As Long' : EM SCRIPT = SCRIPT : 'Recipients As Long' : EM SCRIPT = SCRIPT : 'FileCount As Long' : EM SCRIPT = SCRIPT : 'Files As Long' : EM SCRIPT = SCRIPT : 'End Type' : EM SCRIPT = SCRIPT : 'Type MapiRecip' : EM SCRIPT = SCRIPT : 'Reserved As Long' : EM SCRIPT = SCRIPT : 'RecipClass As Long' : EM SCRIPT = SCRIPT : 'Name As String' : EM SCRIPT = SCRIPT : 'Address As String' : EM SCRIPT = SCRIPT : 'EIDSize As Long' : EM SCRIPT = SCRIPT : 'EntryID As String' : EM SCRIPT = SCRIPT : 'End Type' : EM SCRIPT = SCRIPT : 'Type MapiFile' : EM SCRIPT = SCRIPT : 'Reserved As Long' : EM SCRIPT = SCRIPT : 'Flags As Long' : EM SCRIPT = SCRIPT : 'Position As Long' : EM SCRIPT = SCRIPT : 'PathName As String' : EM SCRIPT = SCRIPT : 'FileName As String' : EM SCRIPT = SCRIPT : 'FileType As String' : EM SCRIPT = SCRIPT : 'End Type' : EM SCRIPT = SCRIPT : 'Declare Function MAPISendMail Lib "MAPI32.DLL"' SCRIPT = SCRIPT : ' (ByVal Session&, ByVal UIParam&,' SCRIPT = SCRIPT : ' Message As MapiMessage, ByVal Flags&,' SCRIPT = SCRIPT : ' ByVal Reserved&) As Long' : EM SCRIPT = SCRIPT : 'Sub SendMessage()' : EM SCRIPT = SCRIPT : 'Dim rc As Long' : EM SCRIPT = SCRIPT : 'Dim msg As MapiMessage' : EM IF RECIP.CNT = 1 THEN SCRIPT = SCRIPT : 'Dim recip As MapiRecip' : EM END ELSE SCRIPT = SCRIPT : 'Dim recip(':RECIP.CNT - 1:') as MapiRecip' :EM END IF ATTACH <> "" THEN IF ATTACH.CNT = 1 THEN SCRIPT = SCRIPT : 'Dim attach As MapiFile' : EM END ELSE SCRIPT = SCRIPT : 'Dim attach(': ATTACH.CNT - 1:') as MapiFile': EM END END SCRIPT = SCRIPT : 'Dim body As String' : EM IF RECIP.CNT = 1 THEN SCRIPT = SCRIPT : 'recip.Name = StrConv("' : FIELD(ADDRESS,'@',1) : '",vbFromUnicode)' : EM SCRIPT = SCRIPT : 'recip.Address = StrConv("smtp:' : ADDRESS : '", vbFromUnicode)' : EM SCRIPT = SCRIPT : 'recip.RecipClass = 1' : EM END ELSE FOR I=1 TO RECIP.CNT SCRIPT = SCRIPT : 'recip(':I-1:').Name = StrConv("' : ADDRESS<I> : '",vbFromUnicode)' : EM SCRIPT = SCRIPT : 'recip(':I-1:').Address = StrConv("smtp:' : ADDRESS<I> : '", vbFromUnicode)' : EM SCRIPT = SCRIPT : 'recip(':I-1:').RecipClass = 1' : EM NEXT I END IF ATTACH <> '' THEN IF ATTACH.CNT = 1 THEN SCRIPT = SCRIPT : 'attach.Position = -1' : EM SCRIPT = SCRIPT : 'attach.Pathname = StrConv("' : ATTACH : '",vbFromUnicode)' : EM END ELSE FOR I = 1 TO ATTACH.CNT SCRIPT = SCRIPT : 'attach(':I-1:').Position = -1' : EM SCRIPT = SCRIPT : 'attach(':I-1:').Pathname = StrConv("' : ATTACH<I> : '",vbFromUnicode)' : EM NEXT I END END ARG = SUBJECT; GOSUB 100 SCRIPT = SCRIPT : 'msg.Subject = "' : ARG : '"' : EM ARG = MESSAGE; GOSUB 100 SCRIPT = SCRIPT : 'Body = "' : ARG<1> : '"' : EM N = DCOUNT(ARG, AM) FOR I = 2 TO N SCRIPT = SCRIPT : 'Body = Body & Chr$(13) & Chr$(10) & "' : ARG<I> : '"' : EM NEXT I SCRIPT = SCRIPT : 'msg.NoteText = Body' : EM SCRIPT = SCRIPT : 'msg.RecipCount = ':RECIP.CNT : EM IF RECIP.CNT = 1 THEN SCRIPT = SCRIPT : 'msg.Recipients = VarPtr(recip)' : EM END ELSE SCRIPT = SCRIPT : 'msg.Recipients = VarPtr(recip(0))' : EM END IF ATTACH <> '' THEN SCRIPT = SCRIPT : 'msg.FileCount = ':ATTACH.CNT : EM If ATTACH.CNT = 1 THEN SCRIPT = SCRIPT : 'msg.Files = VarPtr(attach)' : EM END ELSE SCRIPT = SCRIPT : 'msg.Files = VarPtr(attach(0))' : EM END END SCRIPT = SCRIPT : 'rc = MAPISendMail(0, 0, msg, 0, 0)' : EM * SCRIPT = SCRIPT : 'rc = MAPISendMail(0, 0, msg, 8, 0)' : EM; * DIALOGUE WINDOW SCRIPT = SCRIPT : 'If rc <> 0 Then' : EM SCRIPT = SCRIPT : 'MsgBox "Email failed; code = " & CStr(rc)' : EM SCRIPT = SCRIPT : 'End If' * PRINT ESC : STX : 'P' : SCRIPT : CR : RETURN * 100 * Local subroutine to fixup embedded double-quote marks K = 1 LOOP J = INDEX(ARG, '"', K) WHILE J DO ARG = ARG[1, J] : ARG[J, 99999] K = K + 2 REPEAT RETURN END |
|
piotr
Beta Tester Joined: March 05 2005 Location: Poland Status: Offline Points: 37 |
Post Options
Thanks(0)
|
Can somebody help me with the following:
I am using the code from my previous message (in the unattended mode) to send mails with Outlook Express. It works but the "DATE:" header is not being generated. It is a serious drawback because in some mail readers it is either required and the missing date may cause to qualify a message as spam or a blank space is left in the date column. How to force MapiSendMail to add DATE: header within this script? TIA |
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |