Wednesday, May 23, 2012

Users Setup - Salesforce for Outlook 2010 - Add Email & Create Case Functionality

Here is the scenario:
All business users have been migrated to Windows 7, 64 bit and Outlook 2010. They were utilizing the Outlook 2003/2007 on Windows XP or Windows 7 32 bit.
Now a plugin is required.

Solution:
   As an user, you need to perform the following task before you can utilize full functionality of Add Email and Create Case.
Step 1:
   Make sure your administrator has set up the configuration for your profile.

Step 2:
   Download the plugin. Navigate to: Setup | Personal Setup | Desktop Integration | Salesforce for Outlook
You should have 2 buttons:
View my Configuration <== this will be available only when your administrator has set you up.
Download <== Download the plugin.




Step 3:
  After downloading the Plugin, run the plugin but have outlook closed.

Step 4:
   After setting it up, log into Outlook & click on the Red Salesforce Icon on your desktop and login into Salesforce.
 Step 5:
   The login screen would appear for Outlook Plugin. You can change the URL to Production or Sandbox. Enter in your credentials and click on Login.
Step 6:
   The next screen would bring up "Salesforce for Outlook is requesting Permission to". Click on Allow.
After clicking on Allow, it will bring up your configuration which the administrator of your instance has set you up for. Click OK.

Within Outlook, you will see 2 buttons "Add Email" & "Add Case".

Step 7:
For Add Email, your outlook email should be in Salesforce itself and this must be setup so that this functionality would work correctly.
Setup | Personal Setup | Email | My Email to Salesforce

Step 8:
   On this screen, please configure the following:

Under the section:
"My Acceptable Email Addresses"
   Make sure your full email address as it is setup in Outlook.

Step 9:
  Under the section: Email Associations
The following should be checked:
  • Always send them to My Unresolved Items
  • Always save email attachments <== (Salesforce will not take more then 10MB per attachment) 
  • Email me confirmation of association
  • Excluded Domains <== Empty 

Just a couple of Notes about Add Email from Outlook:

     Once you click Add Email from Outlook, Outlook will place the message on the header of the email sent to salesforce. The message will display "Sent to Salesforce.com"

An email from salesforce, will be emailed to your inbox stating that this task was successful.

To view your email you sent to salesforce, log into salesforce
https://login.salesforce.com
on the Home Page you will see a section on the left side "Shortcut".
Inside this section, "My Unresolved Items"
 Click on it.
Within this screen, you should see the email sent thru you outlook. You can assign this to an existing case. The section where it states "Assign to Salesforce.com Records" Click on Accounts drop down and select Case. Place it the number of the Case and click save.

It will be assign to the Case Number assigned and it will be in the Activities related list within the Case Page Layout.

Admins Setup - Salesforce for Outlook 2010 - Create Case & Add Email Functionality

Scenario:
The entire department or company is migrating to Windows 7 and Outlook 2010. But they were utilizing outlook for connect before hand. Which had the bells and whistles of creating a case, add email, and attachments to email with the pop-ups...
Now you need to test, research, and implement the new way but before you can do that you need some guidance to how to teach your self the EASY WAY...

Solution:
   Step 1: Configure your Outlook 2010 for your email.
   Step 2: For Create Case Functionality you must have Email to Case Settings Enabled and setup.
To do so please navigate to:

Setup | App Setup | Customize |  Cases | Email-to-Case

Step 3:  Click on Enable Email-to-Case Checkbox to true. If you like please take the time to enable the other options if you must for your instance. These are org-wide settings, make sure you get a consensus among your peers before you do so.

Click Save. 

Step 4: Set up a Outlook Configuration in Salesforce, if you are doing this as a test then I suggest going into your Sandbox environment so it does not mess with production data.
To set up your Outlook Configuration Navigate to:

Setup | Administration Setup | Desktop Administration | Outlook Configuration

Click on New Outlook Configuration Button
Under "Basic Information" Section:

Create a Name for your Configuration: I will be testing the create case Functionality so my Configuration will be "Create Case"
Click on Active Check-box
Best Practice is to place in a description of the configuration you are creating.

Under "Assign Users and Profiles" Section:
You can add individual users here or drop down Search to Profiles and select profiles.

NOTE: A profile or User can be part of one configuration. Not more then one.
Let's select the System Administrator Profile.

Under "Data Settings" Section:
Click on Add Email Check-box
Click on Create Case Check-box
Once you click on Create Case - you must configure a "Create Case Destination", So lets click on "Create a new case destination" It shall bring up a box that states it will navigate you automatically to the create case destination area where you can set this up but it will save the configuration as well. Click on Save and Continue on the pop-up box.


This will take you to Email-to-Case Routing Information page

Which is under the case section:
Setup | App Setup | Customize |  Cases | Email-to-Case

Under "Routing Information"
Place in a routing Name: Create Case

Under "Email Settings"
Place in any acceptable emails that can come in thru the create case method. Leave this blank right now.

Under "Case Settings"
3 Mandatory fields are here:
Case Owner ==> this can be an individual user or a queue
Case Priority ==> High/Medium/Low
Case Origin ==> Phone/Web/Email/ Anything that you have in there.

You must fill it out before anything and then click save.


 Once you click Save it will take you back to the Outlook Configuration Page where you started.
Navigate to "Data Settings"
Click on Create Case Check-box
Now click on Choose an Existing Create case Destination
Select the Destination method you just created.


Under the Sync Direction for Contacts, Task, and Events lets for now do "Don't Sync"
Click Save.

This would be it for Administrators to set up the user.

Visualforce Email Template 3

Create a Visualforce Email template by navigating to
Setup --> Communication Templates --> Email Templates --> New TemplateSelect "Visualforce" in the first step...

Give a tilte,name,Subject for your template. Next select the Receipent type and Related to (Related to denotes the object from which you would want data to be displayed in your Email).. Click "Save".... Remember to check "Available for use" to make your email template available for use in Workflow email alerts and whereever it may be useful....
You will now see the template detail Page... In the "Email template" section click on "Edit Template" button... This will take you to a Visualforce Page editor...

You can also click on "Attach file" button in "Standard Attachments" section to attach a file from your desktop to your email..

Below is a small piece of code... You will have to put this code in the editor that appears when you click on "Edit template" button
Note: I have used "htmlEmailBody" for including HTML tags in my template.. Also, since the "Relatedto" is "Account" i am displaying Account information in my template..
  <messaging:emailTemplate subject="Testing Visualforce Email Template" recipientType="User" relatedToType="Account">  <messaging:HtmlEmailBody >  Account Name : {!Relatedto.Name} <br/>  Account Description : {!Relatedto.Description} <br/>  </messaging:htmlEmailBody>  </messaging:emailTemplate>  

What you Can...
With Visualforce email templates you can display any data from the related object in any format you wish.. If Relatedtotype =Account you can display any field of the Account and you can also display the related lists of Account .. For ex you can create a datatable with the value="{!Relatedto.Contacts}"... Similarly you can display other related lists...

What you Cannot...
You cannot use the <apex:page> tag inside your Email template.. Having said this you cannot use pageblock, pageblocksection or any other tag which is a child of the <apex:page> tag.. You can use outputfield,outputtext,datatable etc.. Do not attempt too much of styling and formatting for your email templates unless it is extremely necessary because you would'nt know how your email would be rendered by different providers.. Always use simple and standard formatting so that your email displays uniformly across all providers...

Creating Email Templates and Automatically Sending Emails


Solution

  1. Create an appropriate email template through the email template wizard. Salesforce.com supports multiple email template types. This examples assumes you are using a Visualforce email template. To create a Visualforce email template, you must have the "Customize Application" permission enabled.
  2. Send an automatic email response to the job applicant's incoming email using the Messaging.sendEmail static method to process outbound email messages.
    First, create a Visualforce email template:
    1. Click Setup | Email | My Templates. If you have permission to edit public templates, click Setup | Communication Templates | Email Templates.
    2. Click New Template.
    3. Choose Visualforce and click Next.
    4. Choose a folder in which to store the template.
    5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
    6. Enter an Email Template Name.
    7. If necessary, change the Template Unique Label.
    8. Select an Encoding setting to determine the character set for the template.
    9. Enter a Description of the template. Both template name and description are for your internal use only.
    10. Enter the subject line for your template in Email Subject.
    11. In the Recipient Type drop-down list, select the type of recipient that will receive the email template.
    12. Optionally, in the Related To Type drop-down list, select the object from which the template will retrieve merge field data.
    13. Click Save.
    14. Click Edit Template.
    15. Enter markup text for your Visualforce email template.
    16. Click Save to save your changes and view the details of the template, or click Quick Save to save your changes and continue editing your template. Your Visualforce markup must be valid before you can save your template.
      The maximum size of a Visualforce email template cannot exceed 1 MB.
    This sample Visualforce email template creates an interview invitation:
    <messaging:emailTemplate subject="Received your resume"       recipientType="Contact" relatedToType="Job_Application__c">    <messaging:plainTextEmailBody >  Dear {!relatedTo.Candidate__r.First_Name__c}            {!relatedTo.Candidate__r.Last_Name__c}    Thank you for your interest in the position           {!relatedto.Position__r.name}    We would like to invite you for an interview.   Please respond to the attached invitation.    Regards,  Company  </messaging:plainTextEmailBody>      <messaging:attachment filename="meeting.ics"           renderAs="text/calendar; charset=UTF-8; method=REQUEST">  BEGIN:VCALENDAR  METHOD:REQUEST  BEGIN:VTIMEZONE  TZID:(GMT-08.00) Pacific Time (US and Canada)  BEGIN:STANDARD  DTSTART:16010101T020000  TZOFFSETFROM:-0700  TZOFFSETTO:-0800  RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU  END:STANDARD  BEGIN:DAYLIGHT  DTSTART:16010101T020000  TZOFFSETFROM:-0800  TZOFFSETTO:-0700  RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU  END:DAYLIGHT  END:VTIMEZONE  BEGIN:VEVENT  DTSTAMP:20090921T202219Z  DTSTART;TZID="(GMT-08.00) Pacific Time           (US and Canada)":20090923T140000  SUMMARY:Invitation: Interview Schedule @ Wed Sep 23 2pm - 4pm   ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;          CN="{!recipient.name}":MAILTO:{!recipient.email}  ORGANIZER;CN="John.Smith":MAILTO:recruiter@company.com  LOCATION:Hawaii   DTEND;TZID="(GMT-08.00) Pacific Time           (US and Canada)":20090923T160000  DESCRIPTION: You are invited to an inverview          \NInterview Schedule          \NWed Sep 23 2pm - 4pm           (Timezone: Pacific Time) \NCalendar: John Smith           \N\NOwner/Creator: recruiter@company.com             \NYou will be meeting with these people:          CEO Bill Jones,           Office Manager Jane Jones  \N  SEQUENCE:0  PRIORITY:5  STATUS:CONFIRMED  END:VEVENT  END:VCALENDAR    </messaging:attachment>    </messaging:emailTemplate>  
    Then, send an automatic email response to the job applicant's incoming email. This example uses a Visualforce email template:

      // In a separate class so that it can be used elsewhere  Global class emailHelper {    public static void sendEmail(ID recipient, ID candidate) {      //New instance of a single email message   Messaging.SingleEmailMessage mail =               new Messaging.SingleEmailMessage();     // Who you are sending the email to     mail.setTargetObjectId(recipient);       // The email template ID used for the email     mail.setTemplateId('00X30000001GLJj');                 mail.setWhatId(candidate);         mail.setBccSender(false);     mail.setUseSignature(false);     mail.setReplyTo('recruiting@acme.com');     mail.setSenderDisplayName('HR Recruiting');     mail.setSaveAsActivity(false);       Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });        }    }    

    Source : http://developer.force.com/cookbook/recipe/creating-email-templates-and-automatically-sending-emails
    https://login.salesforce.com/help/doc/en/creating_visualforce_email_templates.htm

    Visual Force Email Templates 2

    Using custom components makes lots of stuff possible. Here's an example of a year-end giving thank you email:
    screenshot
    This shows all gifts for 2008 and attaches a PDF of the giving history as well. Note that this is done just by connecting to the Contact, so this would work in the Salesforce.com mass mail interface.
    Update: You cannot use vf templates in mass email or in the apex outboundemail method in Winter '09. Maybe next release…
    Also note that it's an ugly HTML email just because I'm not a designer. You can make this as professional as you're willing to make it.
    Here's the relevant code:
    The VisualForce Email Template
    <messaging:emailTemplate subject="Thank you for your Support!" recipientType="Contact" >      <messaging:htmlEmailBody >          <html>          <body>              <p>Hello {!recipient.Household_Greeting__c}--</p>              <p>Thank you so much for you giving this year. Every gift helps us make a difference in our envrionment...</p>              <c:thisYearGivingTable ContactId="{!recipient.Id}"/>              <br/><br/>              We look forward to seeing you in 2009!              <br/><br/>              Best,              Steve                </body>          </html>      </messaging:htmlEmailBody>      <messaging:attachment renderas="pdf" filename="{!recipient.Household_Greeting__c}_2008_Giving.pdf">  <html>  <body>  <h3>2008 Giving History for {!recipient.Household_Greeting__c}</h3>  <c:thisYearGivingTable ContactId="{!recipient.Id}"/>    </body>  </html>  </messaging:attachment>  </messaging:emailTemplate>  
    The VisualForce Component that is included in the Email Template:
    <apex:component controller="thisYearGivingTableController" access="global">   <apex:attribute name="ContactId" description="This is the Contact Id." type="Id" assignTo="{!thisContactId}"/>   <table border="1">    <tr>        <td><apex:outputText value="Date"/></td>        <td><apex:outputText value="Amount"/></td>        <td><apex:outputText value="Check Number"/></td>        <td><apex:outputText value="Check Date"/></td>    </tr>    <apex:repeat value="{!thisYearOpps}" var="opp" id="theRepeat">    <tr>        <td><apex:outputField value="{!opp.CloseDate}"/></td>        <td><apex:outputField value="{!opp.Amount}"/></td>        <td><apex:outputField value="{!opp.Check_Number__c}"/></td>        <td><apex:outputField value="{!opp.Check_Date__c}"/></td>      </tr>   </apex:repeat>   </table>  </apex:component>  
     
    The Apex Controller that powers the logic for the VisualForce Component:

    public class thisYearGivingTableController {   //capture the contact id   public Id thisContactId {get;set;}   //a list to hold this year's gifts   public List<Opportunity> thisYearOpps = new List<Opportunity>();   //get the gifts into the list   public List<Opportunity> getThisYearOpps() {    //criteria for opps    thisYearOpps = [SELECT Id, Amount,CloseDate, Check_Date__c, Check_Number__c FROM Opportunity     WHERE IsWon=true AND Year__c=:String.valueOf(system.Today().Year()) AND Id IN     (SELECT OpportunityId FROM OpportunityContactRole WHERE ContactId = :thisContactId AND Role='Individual Donor')     ORDER BY CloseDate];    return thisYearOpps;   }  }  

    VisualForce Email Template

    Three tags to create VisualForce email template
    1) <messaging:emailTemplate> – in which you specify recipient type, relatedToType, subject and email address that they can reply back to.
    2) <messaging:htmlEmailBody> – in which you define the html content you want to show in your Email.
    3) <messaging:plainTextEmailBody> – in which you include the text version of your Email.
    Let me show you a simple example of how to create a VisualForce email template. We are going to create an email template which sends email about contacts that are related to an account.
    The first step is to create an email template by going to Setup -> Administration Setup -> Communication Templates -> Email Templates -> New Template


    <messaging:emailTemplate subject="Contact Information for Account: {!relatedTo.name}" recipientType="Contact" relatedToType="Account" replyTo="sivateja.s@gmail.com">
    <messaging:htmlEmailBody >
    <html>
    <body>
    <p> Dear {!recipient.name},</p>
    <p> Below is the list of contacts related to your account: {!relatedTo.name}.</p>
    <table border="0">
    <tr>
    <th> Action </th>
    <th> Contact Name </th>
    <th> Contact Email </th>
    </tr>
    <apex:repeat var="con" value="{!relatedTo.Contacts}">
    <tr>
    <td> <a href="na7.salesforce.com/{con.id}"> View </a>
    <a href="na7.salesforce.com/{con.id}/e"> Edit </a> </td>
    <td> {!con.Name} </td>
    <td> {!con.Email} </td>
    </tr>
    </apex:repeat>
    </table>
    </body>
    </html>
    </messaging:htmlEmailBody>
    <messaging:plainTextEmailBody >
    Dear {!recipient.name},

    Below is the list of Contacts related to Account: {!relatedTo.name}.

    [Contact Name] - [Contact Email]
    <apex:repeat var="cont" value="{!relatedTo.Contacts">
    [cont.Name]  -  [cont.Email]
    </apex:repeat>

    For more detailed information login to http://www.salesforce.com
    </messaging:plainTextEmailBody>
    </messaging:emailTemplate>
     
    Last step is to test and verify merge fields. Click Send Test and Verify Merge Fields button to verify merge fields.

    Monday, May 21, 2012

    Force.com IDE Installation

    Install as Standalone Application

    For users developing exclusively on the Force.com platform, these installers will download Eclipse code from a public mirror and configure the Force.com IDE to launch as a standalone application:
    Note: you may need to install the Java JRE on your system.

    Install as Eclipse Plugin

    If you are already an Eclipse user, these instructions show you how to install the Force.com IDE into your existing Eclipse distribution or upgrade from a previous version:

    Force.com Eclipse plugin installation problem

    Installation fails with error 'Md5 hash not as expected'
    original error message :

    An error occurred while collecting items to be installed session context was:(profile=SDKProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=). Problems downloading artifact: osgi.bundle,com.salesforce.ide.api,23.0.2.201201091635. MD5 hash is not as expected. Expected: 97a6329f82c422a61e9b1bc28be7cace and found ef8b1c2b63c7d04acaa6bf41f4b8570c.

    this happens due to corrupted download of jars by eclipse.To fix the problem follow these steps:
    1. download all jars manually from
        http://www.adnsandbox.com/tools/ide/install/features/ and
        http://www.adnsandbox.com/tools/ide/install/plugins/
       you can use firefox plugin 'download them all' to download all links in one click.
    2. put them in /features/ and /plugins/ directory of eclipse
    3.run plugin installation again as you would do normally.It won't download the jars again and it will work without error.

    Original post:
    http://stackoverflow.com/a/9823562/1219463

    Thursday, May 3, 2012

    Maximum view state size limit exceeded in Salesforce

    Error : Maximum view state size limit (135KB) exceeded. Actual view state size for this page was 410.891KB.  

    Step 1:
    This will occurs when the variable is u declared as a public .So try to declare this variables as transient. Because this transient keyword used to declare instance variable that cannot be saved.

    Step 2:
    Open the view state and check which variable it taking the kilobytes, see if you can set that variable to null after rendering the page.
    You have to enable view state from your personal information if its already not enabled.

    If you edit your profile, there are two checkboxes - "development mode" and "show view state in development mode".  If you check both of these, you will have access to the view state inspector.  However, if you are already exceeding the view state it may not be much help - you might need to reduce it before you can see it properly if you get  my meaning.  

    Step 3:
    Example:
    You will be using a variable to hold file data like this.
    VF Page:
    <apex:inputFile value="{!file}"/>

    In Apex class:
    public blob file{get; set;}

    Use transient keyword before blob data type. like below,

    public transient blob file{get; set;}

    The transient keyword gives persistency in the VF page..

    Reference:

    Best Practise to Write Apex

    First:
    only those variables which are used on visual force page should be public rest all variables should be private, if not used by any other class.


    Second:
     the most important thing which we generally ignore while working with visual force wizard is to make variables TRANSIENT which leads to increase the view state size. Use of Transient keyword to declare instance variable that can not be saved, and shouldn't be transmitted as part of the view state for visual force page.

    e.g : Transient Integer tempVar ;
    Some apex objects are automatically considered transient, i.e thier value does not get saved as part of page's view state. These objects are SavePoints , PageReference, XMLStream Classes etc. Static variables also don't get transmitted thorugh the view state.

    Third: 
    we should take care of the Heap Size(3 MB) while writing apex. We should nullify all the instance of objects which are no longer in use like if we have a list

    //Fetching account records
    List accLst = [Select Id, Name From Account Limit 10000] ;

    //Creating new map to hold id as key and Account name as value
    Map accountMap = new Map() ;

    //Putting Id as key and account name as value in map
    for(Account tempAcc : accLst) {
         accountMap.put(tempAcc.Id , tempAcc.Name) ;
    }


    Best way to write query in for loop to avoid filling space of heap by creating a list like :

    for(Account tempAcc : [Select Id, Name From Account Limit 10000]) {
        accountMap.put(tempAcc.Id , tempAcc.Name) ;
    }


    or if we are creating a list to hold account records then we can nullify the list after using it in for loop like :

    for(Account tempAcc : accLst) {
       accountMap.put(tempAcc.Id , tempAcc.Name) ;
    }


    //To reduce heap size
    accLst = null ;


    Misc steps :
    1) Exception handling
    2) Commenting
    3) Change history tracking (keep history of the changes in class)
    4) Query should always contain LIMIT

    Salesforce Rich Text Editor's full potential

    WYSIWYG

    Salesforce.com
     implemented CKEditor as the WYSIWYG editor of choice for their Rich Text Area fields, but as you may have noticed, the native editor doesn't support things like direct editing of html, font sizes/styles, font colors, preview, etc...many of the cool features supported by the feature-rich CKEditor.  These limitations can be pretty frustrating, especially when you're trying to build a legit blogging application on the platform.  Being a nosy developer, I decided to see what Salesforce was doing with CKEditor and whether it was feasible to override the control for our purposes at Mavens.  Here's what I found:

    <iframe
    src="/apexpages/fckeditor/editor/fckeditor.html?InstanceName=00N30000006XBysEAG&Toolbar=SalesforceBasic">
    </iframe>


    You'll notice the "&Toolbar=SalesforceBasic" url parameter at the end of the iframe's src attribute.  If you use Firebug or Chrome Developer Tools to crawl to this iframe and remove the "&Toolbar=SalesforceBasic" parameter, you'll see the Rich Text Editor refresh and voilà, the überfunctional CKEditor exposes itself!  

    So what does this mean?  Simply that you can use javascript to programmatically crawl the dom to your Rich Text Editor(s) in Salesforce, modify the iframe src attribute to remove the "&Toolbar=SalesforceBasic", and you'll have a full-featured WYSIWYG control inside Salesforce.

    Here's what you get when you remove the "&Toolbar=SalesforceBasic" parameter from your RTF's iframe:

    Here's the love!

    Exception Handling

    try{
    }catch(DMLException e){
             for (Integer i = 0; i < e.getNumDml(); i++) {
                // Process exception here
                    System.debug(e.getDmlMessage(i));
                    LineItemList [i].adderror(e.getDmlMessage(i));
            }

         }

    How to convert Salesforce rich text editor to a “full mode” editor? - PART II

    <apex:page standardController="Configuration_Item__c" standardStylesheets="true" showHeader="true" sidebar="true">
    <script> 
      $(document).ready(function(){

            CKEDITOR.on('instanceReady', function(e) {
                if (e.editor.config.magic) return;
                var target = e.editor.config.bodyId;
                var name = e.editor.name;
                e.editor.destroy();

                CKEDITOR.editorConfig = function( config ) { config.magic = true; }
                CKEDITOR.replace(name, {
                            height : 400, 
                            bodyId : target
                });
            });
        });
    </script>    
    <apex:form id="theForm">
           <apex:pageBlock id="thePageBlock">
           <apex:pageBlockSection columns="1" id="internalSection">
                    <apex:pageBlockSectionItem >
                        <apex:outputLabel >SalesforceBasic</apex:outputLabel>
                       <apex:inputField value="{!Configuration_Item__c.Test_Rich__c}"/>
                    </apex:pageBlockSectionItem>
              </apex:pageBlockSection>
           </apex:pageBlock>
       </apex:form>

    </apex:page>

    Salesforce Rich Text Editor – Adding Full Mode Features

    I ran across Dan Peter's blog  when I was trying expand on the Salesforce Rich Text Field WYSIWYG and I noticed that if you use firebug and look at the iframe used for the WYSIWYG editor there is a parameter in the url, "&Toolbar=SalesforceBasic" that if you REMOVE it, it will unleash additional functionality from the CKeditor. (see image)

    I created some javascript that will do this automaticaly and the only thing you have to do is replace the iframe id i used, "textAreaDelegate_Content__c___Frame" with your iFrame id.
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
       <script>
        //Removing the &Toolbar=SalesforceBasic url parameter from the iFrame Source  
        $(document).ready(function(){  
         var richtextid = '[id$=textAreaDelegate_Content__c___Frame]';  
         var iframesrc = jQuery(richtextid).attr("src").replace('&Toolbar=SalesforceBasic','');  
         jQuery(richtextid).attr("src",iframesrc);  
        });  
    </script>  

    Note : "textAreaDelegate_Content__c___Frame" - view source code and change corresponding "rich text field ID".
    for Ex: richText ID - 00NW0000000KgEPMA0 then replace like '00NW0000000KgEPMA0___Frame'
    its achieve in the standard pages new/edit alone, so that add above code into Home page component and provide the access to corresponding profile and check it. 
    its working for me :)

    How to convert Salesforce rich text editor to a “full mode” editor?

    New CKEditor is object rather than URL based and a new approach is needed. In case anyone needs it, the following script will replace CKEDITOR editor layout with a full version allowing additional formating options (fonts, colors, etc). Note, I set the height to 500px, adjust for your own needs. Also, as before, this can only work in your own VF pages.
    $(document).ready(function(){
            CKEDITOR.on('instanceReady', function(e) {
                if (e.editor.config.magic) return;
                var target = e.editor.config.bodyId;
                var name = e.editor.name;
                e.editor.destroy();
                CKEDITOR.editorConfig = function( config ) { config.magic = true; }
                CKEDITOR.replace(name, {
                            height : 500, 
                            bodyId : target
                });
            });
    });
    The result:
    enter image description here