This is a pretty common problem: generate a report, and send it to the customer, giving the user a chance to edit the email before sending it. In the past I have used Outlook automation with success (see Sending an email from Saleslogix (or ASP.NET) for example), but there are a few limitations with this approach: most importantly, the Outlook automation has some security limitations (the users will have to configure their browsers to enable it), and it makes it hard to write a rich email that is easily editable by the customer (basically the text of the email has to be hard-coded in the source code). These can be worked around by using mail merge to send the email. There are a few pros and cons to doing this…
Pro:
- No security prompt or special browser configuration for the user
- Template can be edited by the customer
- Template can be sent to multiple contacts and include some contact-specific merge fields
Con:
- Require desktop integration to be installed
- Slower
- Although the Cc and Bcc fields can be populated with arbitrary email addresses, the main recipient of the email must be a SalesLogix contact
- Template must be pre-existing in the SalesLogix database – the email text cannot be generated on the fly (this could be a pro as well as a con!)
To send the email, use the following Javascript code:
var mmSvc = GetMailMergeService(); var mmInfo = new mmSvc.MailMergeInformation(); mmInfo.EditAfter = true; mmInfo.EmailCC = "nicgaller@hotmail.com"; mmInfo.ContactIds = contactIds; // string with contact ids, separated by commas mmInfo.TemplatePluginId = "BASELETTERTE"; mmInfo.ExecuteMailMerge();
This sends a basic email. To add an attachment, the data for that attachment must first be saved as a new record in the PLUGINATTACHMENT table. Only DATA, PLUGINATTACHID and FILENAME are required to be populated. Once you have a PluginAttachId value it can be added to the message like this (right before the ExecuteMailMerge call):
mmInfo.AddAttachment(0, "", filename, "", pluginAttachId)
This post is for SalesLogix 7.5.4 but a similar approach works on SalesLogix 8.0.