Best emailing templates?

Hi guys.

I have this client that requieres that a report being previewed in the screen to be sent via email using her Outlook program.

I know there is a number of templates with emailing capabilities, I just wanted to know your thoughts, comments or reccomendatios about what are you using to do the same or similar task.

Thank you!

  • Paco

To send via Outlook you need MAPI, not sure what template implement that. Most send direct via SMTP. Thats what I do.
Having said that the landscape has changed a little and Office365 is all cloud, so that makes it a little harder. I know nettalk does OAUTH that you now need to talk to most cloud things. But beyond that I don’t know.

I use the Clarion ClaTalk.SendMail method that uses the ClaRunExt.DLL.
I let the user view the report (e.g. a client invoice). I have a Clarion form that has the email fields to send it as an attachment to the client. The message can be modified before it is sent, or it doesn’t have to be sent. (One button creates the report and opens the form).
I put the sender as a cc, so they get a copy, which can be received in Outlook or whatever the user has.
This program is run from a Windows Server computer, so I don’t need to have Outlook or any other email program installed on the server. I’m using Clarion 11 and the wPDFControl template from Klarisoft to create PDF reports.
Another example is emailing paystubs to employees. Since they have direct deposit, this lets them get an email with their PDF paystub as an attachment. The program sends each employee their own paystub, so of course the program creates a separate email and report file for each employee. A cc for each email is sent to the payroll admin. In this case, each paystub is not previewed before sending.

I would suggest Handy tools. These are brilliant.


I implemented and it worked perfectly. Thanks!

My client needs the email to be sent from Outlook, so she has a record of the emails sent.

Is there a way to force the email to be sent through Outlook?


In my application, I have an Email Log file, which of course keeps track of the emails that are sent, to whom, subject line, client name, and company. So in the application, the user can see the emails that are sent to a client when viewing the company record, so the user doesn’t have to go to Outlook to see it. The emails are cc’d to the user so they get to see them in Outlook too.

There is Office365.Mail product:

Send and receive Office365 emails using REST API.
Base features:

  • Send mail
  • Reply
  • Receive messages
  • Filter messages
  • Get attachments
  • Delete message

For Azure athorization there is an (optional) AzureConnector class, it requires Easy Edge (Chromium) v1.09 and newer.

Hey Mike,

This is a locally installed outlook. Do you know if it works the same as well Office 365?

My first suggestion would be to get a new client. :roll_eyes:

My second would be to suggest possibly trying Capesoft’s Office Inside. CapeSoft Office Inside - Outlook


We use Nettalk with ChromeExplorer and Secwin 7 (NOTE I do not work for Capesoft :slight_smile: . Display email in HTML before send. After send we log and save the full email in SQL table.

Works very good for us. Thus way we can see all emails and manage who can resend and or view send emails attached to that person or client.

I have been using a Softmaster’s Office Integration for many years. Works really well.
You can send the emails “blind”, meaning Outlook is not opened in the screen, yet the emails sits in the Sent Items folder.

I am not sure if they still exist. URL used to be

Normally . . . when you send an EMail you also explain what it’s for, or about . . .just attach the .pdf to the EMail and create a short mesage to explain the .pdf and why you sent it.


Lots of possibilities. Thank you all, guys.

I’ve been researching some of the answers based on feasibility, ease, and price.

And after reading some information pages, I found an easy and free solution: the Outlook command line.

Using the RUN() command, I just call outlook and pass it the parameters I need: email, subject, body, and the attached file.

And it looks like this:

!LOC:OutlookCommand is a local variable to store all the string that is passed to the RUN() command.
!GLO:Outlook is the path where outlook is installed. It can be empty if Windows finds the path automatically.
!CLI:Email is the client email (string)
!GLO:Subject is the email's subject (string)
!GLOBody is the email's body (string)
!Glo:Path is the path to the attachment file
LOC:OutlookCommand = Clip(GLO:Outlook)&' /c ipm.note /m "'&Clip(CLI:Email)&'?subject='&Clip(GLO:Subject)&'&body='&Clip(GLO:Body) &GLO:Path


When executed, Outlook opens and it gets automatically pre-popullated, so the user can change anything before sending it and once sent, the email is stored in the SENT folder.

Thank you all guys for all your suggestions. They all helped me find this one.



You can actually do that if you use MapiSendMail and then it will work like you describe with what ever their local Email client is. The key is it needs to be a local mail client, not web-mail.

1 Like

Didn’t know that. Good idea.


Are you missing something before GLO:Path ??

Yes, because I had some texto into that variable that complete the full lcommand line:

LOC:OutlookCommand = Clip(GLO:Outlook)&' /c ipm.note /m "'&Clip(CLI:Email)&'?subject='&Clip(GLO:Subject)&'&body='&Clip(GLO:Body)"'&' /a '&GLO:Path

This would be the complete line command without Clarion variables:

LOC:ComandOutlook = 'C:\Program Files\Microsoft Office\Office16\OUTLOOK.EXE /c ipm.note /m "'[email protected]'?subject=Meeting tomorrow&body=Hey team, remember that we have an a team chat tomorrow at" /a "C:\path\to\file.pdf"')


Just replace all the variables needed and, specially, respect the "

Actually, you can send a lot of switches. Check this page out for the full list of them:

Hope this helps.

(I see it solved! Just sharing)

We have had a similar requirement. The user sending the e-mail needed to,

  1. See the e-mail in their sent folder.
  2. Be able to ADD other attachments, if and when needed, BEFORE sending.

Solution that has worked for the last 12 years, irrespective of version of MS outlook.

  1. HTML template file
  2. VBS script


  1. Load the HTML template file into StringTheory aka “st”
  2. Replace /populate the variables using the st object.
    a. Your Ticket number: %ticketno% - st.replace(‘%ticketno%’, ‘SharkDrive1212’)
  3. Write the HTML file to a temp folder. (Our app installation always creates “c:\temp\PDFs”)
    a. St.savefile(‘c:\temp\PDFs\TMP_QWQWQWGUID.HTML’)
  4. Execute the EMAIL.VBS script from the Clarion App with the needed parameters.

Result: Outlook opens up with a NEW email that was created and the “TMP_QWQWQWGUID.HTML’ file becomes the actual body of the e-mail.
All the user has to do is click SEND.

This approach was chosen because the user could verify that they are actually sending the correct type of information, aka template, to the recipient.

The RUN() command is used.

(PS! Before StringTheory the RTF class was used to find and replace variables)

1 Like

That works nicely. Thanks for posting this.

[quote=“Paco, post:17, topic:6109”]

LOC:OutlookCommand = Clip(GLO:Outlook)&' /c ipm.note /m "'&Clip(CLI:Email)&'?subject='&Clip(GLO:Subject)&'&body='&Clip(GLO:Body)"'&' /a '&GLO:Path

Sorry, I cannot get it working. The last part (…‘&’ /a '&GLO:Path) throws errors.
I removed the ’ before the & (in ‘&’) and can compile, but there is no attachment in the email
Hope you can help