locked
How can an email be sent using the emailaddress2 field instead of the primary email address? RRS feed

  • Question

  • Hello Guys,

    Can anyone guide me how can an email be sent using the emailaddress2 or emailaddress3 field instead of primary email address?

    Regards

    Imran H

    Sunday, June 26, 2016 6:12 PM

Answers

  • Hi Desai,

    Thanks for your help I have done this. I have already read this article i got some clue from it.

    Actually I had a requirement that the email could be sent to the secondary email addresses instead of emailaddress1, and it should be configurable if  emailaddress1,2 and 3 fields are filled. In this scenario the email will be sent to the primary email address by default. To achieve this goal I fired the plugin on email entity create step,

    Here my code snippet:

     Entity SmsSurveyConfiguration = service.Retrieve("SmsSurveyConfiguration")
                                                if (SmsSurveyConfiguration != null)
                                                {
                                                    string defaultsmsfield = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_defaultsmsfield");
                                                    string alternatesmsfield = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_alternatesmsfield");
                                                    string smskeywordquickcampaign = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_smskeywordquickcampaign");
                                                    Helper.TraceLog(Tracer, "Execute > defaultsmsfield: " + defaultsmsfield);
                                                    Helper.TraceLog(Tracer, "Execute > alternatesmsfield: " + alternatesmsfield);

    }

           EntityCollection activityParties = (EntityCollection)emailEntity.Attributes["to"];


                                                            foreach (Entity activityParty in activityParties.Entities)
                                                            {

                                                                if (activityParty.Contains("partyid") && ((EntityReference)activityParty.Attributes["partyid"]).LogicalName == "contact")

                                                                {

                                                                    Entity contact = service.Retrieve("contact", ((EntityReference)activityParty.Attributes["partyid"]).Id, new ColumnSet("emailaddress2", "emailaddress3"));

                                                                    if (defaultsmsfield != string.Empty)
                                                                    {
                                                                        if (defaultsmsfield == "emailaddress2" || defaultsmsfield == "emailaddress3")
                                                                        {


                                                                            string defaultsmsfieldValue = Helper.GetAttributeValue(contact, defaultsmsfield);
                                                                            if (defaultsmsfieldValue != string.Empty && contact.Contains(defaultsmsfield) && contact.Attributes[defaultsmsfield] != null)
                                                                            {


                                                                                Helper.TraceLog(Tracer, "Execute > defaultsmsfieldValue: " + defaultsmsfieldValue);

                                                                                Helper.TraceLog(Tracer, "Execute > defaultsmsfieldValue from contact: " + Convert.ToString(contact.Attributes[defaultsmsfield]));

                                                                                activityParty.Attributes["addressused"] = (string)contact[defaultsmsfield];

                                                                            }
                                                                        }

                                                                    }
                                                                    else if (alternatesmsfield != string.Empty)
                                                                    {
                                                                        if (alternatesmsfield == "emailaddress2" || alternatesmsfield == "emailaddress3")
                                                                        {

                                                                            Helper.TraceLog(Tracer, "Execute > alternatesmsfield: " + alternatesmsfield);
                                                                            string alternatesmsfieldValue = Helper.GetAttributeValue(contact, alternatesmsfield);
                                                                            if (alternatesmsfield != string.Empty && contact.Contains(alternatesmsfield) && contact.Attributes[alternatesmsfield] != null)
                                                                            {
                                                                                Helper.TraceLog(Tracer, "Execute > alternatesmsfieldValue: " + alternatesmsfieldValue);

                                                                                activityParty.Attributes["addressused"] = (string)contact.Attributes[alternatesmsfield];


                                                                            }
                                                                        }
                                                                    }


                                                                }

                                                            }
                                                        }
                                                        service.Update(emailEntity);



    • Edited by Imran H Sunday, July 10, 2016 3:42 PM
    • Marked as answer by Imran H Sunday, July 10, 2016 3:42 PM
    Sunday, July 10, 2016 3:40 PM

All replies

  • Hi Imran,

    Are you talking about through code(SDK) then see below link.

    http://mostlymscrm.blogspot.com.au/2012/11/sending-emails-to-specific-address.html

    Not sure how to do with user interface. Probably remove email from primary address and populate secondary email field and CRM will pick up that !(Just guessing)

    Are you sending email to contact, lead or system user ?

    Regards,

    H.Desai

    Monday, July 4, 2016 6:44 AM
  • Hi Desai,

    Thanks for your help I have done this. I have already read this article i got some clue from it.

    Actually I had a requirement that the email could be sent to the secondary email addresses instead of emailaddress1, and it should be configurable if  emailaddress1,2 and 3 fields are filled. In this scenario the email will be sent to the primary email address by default. To achieve this goal I fired the plugin on email entity create step,

    Here my code snippet:

     Entity SmsSurveyConfiguration = service.Retrieve("SmsSurveyConfiguration")
                                                if (SmsSurveyConfiguration != null)
                                                {
                                                    string defaultsmsfield = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_defaultsmsfield");
                                                    string alternatesmsfield = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_alternatesmsfield");
                                                    string smskeywordquickcampaign = Helper.GetAttributeValue(SmsSurveyConfiguration, "cc_smskeywordquickcampaign");
                                                    Helper.TraceLog(Tracer, "Execute > defaultsmsfield: " + defaultsmsfield);
                                                    Helper.TraceLog(Tracer, "Execute > alternatesmsfield: " + alternatesmsfield);

    }

           EntityCollection activityParties = (EntityCollection)emailEntity.Attributes["to"];


                                                            foreach (Entity activityParty in activityParties.Entities)
                                                            {

                                                                if (activityParty.Contains("partyid") && ((EntityReference)activityParty.Attributes["partyid"]).LogicalName == "contact")

                                                                {

                                                                    Entity contact = service.Retrieve("contact", ((EntityReference)activityParty.Attributes["partyid"]).Id, new ColumnSet("emailaddress2", "emailaddress3"));

                                                                    if (defaultsmsfield != string.Empty)
                                                                    {
                                                                        if (defaultsmsfield == "emailaddress2" || defaultsmsfield == "emailaddress3")
                                                                        {


                                                                            string defaultsmsfieldValue = Helper.GetAttributeValue(contact, defaultsmsfield);
                                                                            if (defaultsmsfieldValue != string.Empty && contact.Contains(defaultsmsfield) && contact.Attributes[defaultsmsfield] != null)
                                                                            {


                                                                                Helper.TraceLog(Tracer, "Execute > defaultsmsfieldValue: " + defaultsmsfieldValue);

                                                                                Helper.TraceLog(Tracer, "Execute > defaultsmsfieldValue from contact: " + Convert.ToString(contact.Attributes[defaultsmsfield]));

                                                                                activityParty.Attributes["addressused"] = (string)contact[defaultsmsfield];

                                                                            }
                                                                        }

                                                                    }
                                                                    else if (alternatesmsfield != string.Empty)
                                                                    {
                                                                        if (alternatesmsfield == "emailaddress2" || alternatesmsfield == "emailaddress3")
                                                                        {

                                                                            Helper.TraceLog(Tracer, "Execute > alternatesmsfield: " + alternatesmsfield);
                                                                            string alternatesmsfieldValue = Helper.GetAttributeValue(contact, alternatesmsfield);
                                                                            if (alternatesmsfield != string.Empty && contact.Contains(alternatesmsfield) && contact.Attributes[alternatesmsfield] != null)
                                                                            {
                                                                                Helper.TraceLog(Tracer, "Execute > alternatesmsfieldValue: " + alternatesmsfieldValue);

                                                                                activityParty.Attributes["addressused"] = (string)contact.Attributes[alternatesmsfield];


                                                                            }
                                                                        }
                                                                    }


                                                                }

                                                            }
                                                        }
                                                        service.Update(emailEntity);



    • Edited by Imran H Sunday, July 10, 2016 3:42 PM
    • Marked as answer by Imran H Sunday, July 10, 2016 3:42 PM
    Sunday, July 10, 2016 3:40 PM