I have several customers both on UV and on D3 that have programs that send email. AT is using OLE to talk to outlook.
This has stopped working the second the new outlook was forced on my customers.
Any assistance would be appreciated.
This is the code that Pete sent me years ago that was working
SUBROUTINE AT.SEND.EMAIL.OUTLOOK(ADDRESS, SUBJECT, MESSAGE, ATTACH)
* 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)
SCRIPT = ''
*Create our object variables
CALL SAVE.SCREEN('AT')
CRT @(0,20):@(-3):"You have called Outlook to send emails. Remember to say 'Allow' to permit Outlook to actually Send the email"
PRINT "To ":ADDRESS:" ":ATTACH
PRINT "Attachment: ":ATTACH
SCRIPT = SCRIPT : 'Dim OutlookApp as Object' : EM
SCRIPT = SCRIPT : 'Dim MailItem as Object' : EM
SCRIPT = SCRIPT : 'Dim Recipient as Object' : EM
SCRIPT = SCRIPT : 'Dim Attachment as Object' : EM
*Create the Outlook application object
SCRIPT = SCRIPT : 'Set OutLookApp = CreateObject("Outlook.Application")' : EM
*Use the Application object to create our mail object
SCRIPT = SCRIPT : 'Set MailItem = OutLookApp.CreateItem(0)' : EM
*Add recipients to the mail item
ARG = ADDRESS ; GOSUB 100
N = DCOUNT(ARG, AM)
FOR I=1 TO N
SCRIPT = SCRIPT:'Set Recipient = Mailitem.Recipients.Add("':ARG<I>:'")':EM
SCRIPT = SCRIPT:'If Not Recipient.Resolve Then': EM
SCRIPT = SCRIPT : ' MsgBox "The recipient did not check out!"' : EM
SCRIPT = SCRIPT : ' Exit Sub' : EM
SCRIPT = SCRIPT : 'End If' : EM
NEXT I
* Add the subject
ARG = SUBJECT ; GOSUB 100
SCRIPT = SCRIPT : 'MailItem.Subject = "' : ARG : '"' : EM
* Add the message - lines are separated by attribute marks
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 : 'MailItem.Body = Body' : EM
* Add the attachment
IF ATTACH <> '' THEN
ARG = ATTACH ; GOSUB 100
N = DCOUNT(ARG, AM)
FOR I = 1 TO N
SCRIPT = SCRIPT : 'MailItem.Attachments.Add "' :ARG<I> : '"' : EM
NEXT I
END
SCRIPT = SCRIPT : 'MailItem.Send' : EM
SCRIPT = SCRIPT : 'Set Attachment = Nothing' : EM
SCRIPT = SCRIPT : 'Set Recipient = Nothing' : EM
SCRIPT = SCRIPT : 'Set MailItem = Nothing' : EM
SCRIPT = SCRIPT : 'Set MailItem = Nothing'
PRINT ESC : STX : 'P' : SCRIPT : CR :
CRT @(0,23):@(-4):"Finished Sending Mail to ":ADDRESS
RQM
CALL RESTORE.SCREEN('AT')
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


