Imagine that you wish to know whether a customer has read an e-mail sent from Sage CRM.
Sage CRM sends its emails using the de facto standard Simple Mail Transfer Protocol (SMTP). Sage CRM can be configured either to send via Internal SMTP or via CDONTS.
If Sage CRM is set to use Internal SMTP then CRM acts as the SMTP client to the Outgoing mail server. This is the simpler of the two options to configure and this is described in the System Administrator Guide in Chapter 33.
The use of CDONTS is a little more complex to set up and this requires the use of the Default SMTP Virtual Server associated with the web server. The configuration is discussed in the System Administrator Guide in Chapter 33.
The protocol that Sage CRM is actually likely to be using to route the mail is known as ESMTP (Extended SMTP) and this includes support for "DSN" — Delivery status notification. Basically the protocol supports the idea of the read receipt.
This Delivery Status Notification (DSN) is a function of the Mail Server. There are two different kinds: positive and negative delivery status notifications. A example of a Negative delivery status notification would be "Sorry, your message could not be delivered to:..." and hopefully some meaningful explanation. Depending on the server configuration, you may or may not get your complete message back.
In considering a Read Receipt for emails sent from Sage CRM we must also think about the questions of what means are available to get a notification when your e-mail has been delivered, received and not just read.
Let's assume that we mean by "delivery", the e-mail has been delivered by the Mail Server to a recipient's mailbox and by "receipt", a user has received the e-mail.
The are several problems involved with these assumptions. What is the recipient's mailbox? If we had sent the email and requested a delivery receipt this is likely to come from any routing server. What if the user gets their e-mail forwarded by Blackberry service or a SMS server or pager or something else?
And if we have requested a read receipt for our message, does it mean that the user has received the email? Does this mean that is has really been read? Or has just the subject of the e-mail been listed in an RSS feed in some's iGoogle page? Or perhaps an Anti Virus program has read and sorted the email? And then we are stuck with the problem that answering a read receipt is under the control of the recipients. As we can see from this option box from within Outlook.
I think the number of these sorts of difficulties goes a long way in explaining why Sage CRM doesn't have an option for Delivery Receipt and Read Receipt in its email client.
Having said that we can help ourselves in some of these matters, especially as far as assumptions on delivery and confidence in the routing of emails
Going your own way
- Firstly when dealing with outbound emails users could "cc:" themselves when e-mailing companies and contacts. This enables them to cross-reference communications with mails that have arrived in their mailbox.
- Secondly with CDONTS the Default SMTP Virtual Server "Advanced Delivery" Properties can be set to ensure that copies of sent mails can be accessed, thereby providing a facility for checking whether mails were sent out by CRM correctly.
- Thirdly, we can use the reply to addresses of outbound emails to route automated replies to an account that is monitored by the mail manager so that bounced emails can be assessed and identified.
It would be possible to develop a new page handling outbound emails. CRM offers access to the Groups (Target Lists) and you could either use the CRM message object of make use of the CDONTS mail object to code as you wish.
The CDONTS object has a DSNOptions property allowing you to specify these.
I have written before about sending emails from CRM in the article "Sending Emails in ASP COM API