Skip to main content

Send attachment Via Apex using Templates

Email Via Apex using Email Templates :

Contact con = [Select id from contact Limit 1];

List<String> emailsAll = new List<String>();
emailsAll.add('toEmailAddress@gmail.com');

List<String> emailsCC = new List<String>();
emailsCC.add('cCEmailAddress@gmail.com');

String TemplateId = [SELECT Id FROM EmailTemplate WHERE DeveloperName = 'Multi_Language_Template_Test' LIMIT 1].Id;

List<Messaging.SingleEmailMessage> mails =  new List<Messaging.SingleEmailMessage>();   
       
        // Step 1: Create a new Email
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
       
        // Step 2: Set list of people who should get the email
        mail.setToAddresses(emailsAll);
        mail.setCcAddresses(emailsCC);

        // Step 3: Set who the email is sent from
        mail.setReplyTo('noreply@gmail.com'); // change it with your/Company mail address.
        mail.setSenderDisplayName('Salesforce User');

       //Step 4 : when Using Template Id 
       mail1.setTargetObjectId(con.Id); //Mandatory while using Template(ID of  contact, lead, or user)
       mail1.setTemplateId(TemplateId);
                  /*OR*/
        // Step 4. Set email contents - you can use variables! when not using Template
        mail.setSubject(mSubject);
        mail.setHtmlBody(mbody);

        // Step 5. Attach file!  (Not Mendatory)
        List<Messaging.Emailfileattachment> fileAttachments = new   List<Messaging.Emailfileattachment>();
        for (Attachment a : [select Name, Body, BodyLength from Attachment where ParentId =: parentId ORDER BY CreatedDate DESC Limit : 1])
        {
            Messaging.Emailfileattachment efa = new Messaging.Emailfileattachment();
            efa.setFileName(a.Name);
            efa.setBody(a.Body);
            fileAttachments.add(efa);
        }
        mail.setFileAttachments(fileAttachments);

        // Step 6. Add your email to the master list
        mails.add(mail);

        // Step 7: Send all emails in the master list
        Messaging.sendEmail(mails);

Comments

Popular posts from this blog

Platform Developer I Certification Maintenance (Winter '23)

 Maintain Your Platform Developer I Certification for Winter ’23 1. Field update actions have changed in API Version 54.0. Which record-triggered flows do field update actions now execute? Answer: Before-Save after After-Save 2. Which Apex class is used to determine the hostnames for the domains that Salesforce hosts for your org? Answer: System.DomainCreator 3. Which modules can be used for notifications in a Lightning web component instead of native APIs? Answer: LightningAlert, LightningConfirm, and LightningPrompt 4. What determines an org’s “shape” in Salesforce? Answer: Features, settings, edition, limits, and licenses 5. Which lightning-modal-* component is required to create a modal? Answer: Body 6. How do you call an invocable action from Apex code? Answer: Reference Invocable.Action Get Hands-On With Apex Assertions 1. Create Two Apex class: Copy and Paste below codes (A.) TestFactory @isTest public class TestFactory {    public static Account getAccount(String accountName, B

Administrator Certification Maintenance (Spring '23)

 Maintain Your Administrator Certification for Spring '23 1. What information is listed in the Details panel for recently used reports? Answer: A, B, C 2. What is used to give sales reps access to a guided process to import contacts and leads? Answer:  Sample CSV file 3. Which feature efficiently removes inactive picklist values? Answer: Bulk Delete Unused Values 4. Which type of Process Builder processes can be converted using the Migrate to Flow tool? Answer: Record-triggered Get Hands-on with Enhance Record Pages With Dynamic Forms Follow steps show in Screenshot also highlighted with Red Box:

Platform App Builder Certification Maintenance (Winter ’23)

Maintain Your Platform App Builder Certification for Winter ’23 1. What component customizes related lists directly from the Lightning App Builder? Answer:      Dynamic Related List – Single 2. Where can a debug flow test be created and saved? Answer:      Flow Builder 3. What action enables smart email auto-responses in Flow Builder? Answer:      Create Article Recommendations 4. Custom address fields improve address data accuracy for your users using what type of list? Answer: State and Country/Territory Picklists 5. What are the benefits of using Dynamic Forms on record pages? Answer:      Place fields anywhere on the page  Use Visibility Rule to show and hide fields  6. Restriction or scoping rules now allow multiple values. When should double quotes surround a value? Answer:      If a single value contains a comma  Get Hands-On With Permission Set Expiration Verify before performing this: Permission Set & Permission Set Group Assignments with Expiration Dates should be enabled

Translate