Working with Email to Case Agent in Salesforce

I have searched web for proper “Email to Case” agent tutorial but didn’t find enough information so decided to write my own one. Many of you already knows that we have “On – Demand” email to case, so what is need of this Agent? However there are existing client which are already using this toolkit and that why sometimes they need support for it.

Why Email to case Agent ?

  • Email to case agent is installed on your local/Server System. It fetches message from your email Server (Email address dedicated to Email to Case), Process it and creates Case records inside Salesforce.
  • As we know that there is limit of attachment size in Case, so using this Agent we can save that attachment on Local / Server hard drive.

Pre-requisite for Email to case Agent:

  1. JDK 1.5.0_06 or later.
  2. Email to case agent (Download from -http:// wiki.apexdevnet.com /index.php / Members : Email_To_Case )
  3. Make sure Email to Case is enabled in Salesforce.
  4. One Email Account which supports IMAP Protocol.

Now extract, Email to case agent downloaded from above URL.

In folder “EmailAgent” you will find below important 3 files:

  1. email2case.bat (To run Email-to-Case Agent we need to click on this batch file)
  2. email2case.txt
  3. sfdcConfig.txt

Configuring “email2case.txt” :

<configFile>
    <server1>
        <url>your.EmailServer.Path</url>
        <protocol>imap</protocol>
        <userName>emailtocase@YourEmail.in</userName>
        <password>YourPassword</password>
        <interval>1</interval>
        <inbox>Inbox</inbox>
        <readbox>Inbox.testNestedProcessing</readbox>
        <errorbox>Inbox.testNestedError</errorbox>
    </server1>
</configFile>
Parameter
Description
URL Name of the mail server to connect with
PORT The port to connect to on the Mail Server - optional Default port 143 will be used if not provided.
PROTOCOL IMAP, but if you want to connect to SSL encrypted IMAP Servers (like e.g. GMAIL) use IMAPS and the PORT 993, may support others in the future.
USERNAME Name of the user that will login to the mail server. Typically, the name of the email account, like platinumsupport.

Note: Exchange may require the following format - userid@domain (as opposed to server\ ame or just name.)
PASSWORD Password to authenticate the user against the mail server
INTERVAL time interval in minute to fetch message from Email Server
INBOX Name of the folder to look for new messages in
READBOX Name of the folder to move messages to after they have been processed.
ERRORBOX Name of the folder to move messages to in the event of an error. If the agent cannot successfully execute a transaction with the sfdc server, messages will be moved to this folder so that manual action can be taken if necessary (requeueing etc...).

Note: If you want to nest folder names, be sure to either use the delimiter that is supported by your mail server for separating folders(often \'/\' or \'.\' or you can always use \'.\' and the agent will convert to the correct delimiter supported by your mail server at runtime.

Configuring “sfdcConfig.txt” :

<configFile>
    <sfdcLogin>
        <url>https://www.salesforce.com/services/Soap/u/9.0</url>
        <userName>SalesforceUserName</userName>
        <password>SalesforcePassword</password>
        <loginRefresh>30</loginRefresh>
        <timeout>600</timeout>
    </sfdcLogin>
    <notify>
	    <notifyEmail>jitendraZaa@gmail.com</notifyEmail>
        <from>emailtocase@shivasoft.in</from>
        <host>Email Server Host</host>
		<port>25</port>
        <user>emailtocase@shivasoft.in</user>
        <password>PasswordofEmail</password>
        <service>com.sforce.mail.SMTPNotificationAuth</service>
    </notify>
    <attachments>
        <largeAttachmentDirectory>C:\Users\JitendraZaa \Downloads \EmailAgent \Attachments \</largeAttachmentDirectory>
        <largeAttachmentURLPrefix>file:\C:\Users \ JitendraZaa \Downloads \EmailAgent \ Attachments\</largeAttachmentURLPrefix>
        <largeAttachmentSize>0.5</largeAttachmentSize>
    </attachments>
    <services>
        <com.sforce.mail.EmailService>C:\Users  \JitendraZaa\ Downloads\ EmailAgent\ email2case.txt </com.sforce.mail.EmailService>
    </services>
</configFile>
Parameter
Description
NOTIFYEMAILEmail address of person to send notification to in event of a problem. To send to multiple recipients, separate addresses by commas.
FROMSender Address of above.
HOSTSMTP Host for Email, or is using Notification extensions this can be any other type of host you need.
PORTSMTP Port for above host - optional. Default port 25 will be used if not provided.
USERFor SMTP, this is the user needed for SMTP to authenticate.
PASSWORDFor authentication, if needed.
SERVICEThe class to use for invoking notifications.

The provided class, com.sforce.mail.SMTPNotification, is for sending Email notifications via SMTP. Another class is also provided for use with SMTP servers that require authentication (e.g. Yahoo, Hosted Mail Providers).

This Class, com.sforce.mail.SMTPNotificationAuth does require the user and password parameters to be provided The architecture is designed such that another class could be used in its place for other protocols as desired SMNP, JMX etc... To do this, subclass com.sforce.mail.Notification.

Large Attachment processing:
Salesforce.com has a limit on the size of attachments for any single case. When an attachment exceeds this limit, the creation of a case for the email fails and an error is generated. To prevent this from happening, and to manage the storage of large attachments, the files can be stripped from the email they are attached to, and stored on a file system that you specify. Here are the settings that you must configure to activate this optional feature.

Parameter
Description
largeAttachmentDirectoryThis is the high level directory where you want to store the attachments. Subdirectories will be created each day an attachment is processed.
largeAttachmentURLPrefixThis is a url which will prefix a unique filename stored in a proxy file that points to the real file so that you can link to the file from the Salesforce application
largeAttachmentSizeSpecified in MB, this is the threshold at which the agent will strip attachments and copy them to disk.
Email To Case Agent Running Mode

Email To Case Agent Running Mode

Youtube Video Tutorial of Email to Case Agent :

This entry was posted in Salesforce and tagged on by .

About Jitendra

Force.com MVP and Sr. Consultant at Cognizant Technology Solutions. More than 7 years of experience in technologies and frameworks like Salesforce, Node.Js, JAVA, PHP, JSP, Struts, Hibernate, C#, ASP.NET, SQL Server. Also many javaScript libraries like Polymer, AngularJs, JQuery, JQuery Mobile, BootStrap etc... More : Jitendra's Resume

Related posts

  • Pingback: Troubleshooting of common problems in Email to Case | Shiva Blog()

  • Hariharasuthan

    Brilliant Job G2. Kudos to you

    • JitendraZaa

      Thanks Hari

  • hello

    hi: thankyou for tutorial. i wanted to double check, if this method does not require any forward of emails (as the newer functionality, On Demand Email to Case, does require the company to forward all the emails to Salesforce.com) thankyou.

    • JitendraZaa

      Hi,
      This method requires dedicated email box. Like in above example my email address emailtocase@shivasoft.in will be used to fetch all emails.
      In your case it may be support@company.com.

      • siva

        y email to case functionally is not working for forward masages

  • Rajnish

    Bro ..Could you please tell me the difference between On demand Email to Case and normal Email to Case?

    • sudha

      how to represent Email server path

      • JitendraZaa

        There is user, password and port tag in configuration. You have to represent there….

        • sudha

          yes i know it.but i m asking what to represent over there.Actually I dont have email server.How to create email server and how manage this?

          • JitendraZaa

            You will need to buy it from domain provider like go daddy. Or you can use free emails like gmail and yahoo. You can Google on information about accessing email of yahoo and gmail via coding, or client.

    • JitendraZaa

      On demand mean you don’t have to install anything. Out of the box functionality provided by Salesforce.

  • Abhishek Dey

    Hi Jithendra.. I am not able to download email agent from the URL mentioned in your blog. Please let me know if you have any updated URL

  • arwa

    hii can i restrict certain email id from creating case through email to case as in the junk emails should not be automatically created into cases

  • lfgordon

    Hello – this is an excellent tutorial. I helped me understand a lot. I need to help someone that has their email hosted by Google/Gmail with their own domain name.
    Do you know how to ‘install’ the java agent in that environment? I would also love a tutorial on how to get the large attachments stored in Google Drive or somewhere outside of Salesforce.

    Thank you again

  • CWeekes

    Hi, I just found your blog. I am wondering, do you know how email and attachments created in salesforce using email to case can be stored in a company server rather than in Salesforce itself? We are encountering storage issues all the time.

    Any help is appreciated.

    Thanks!