
Mail a Table of Opportunity Records With a Link of Detail Page | Salesforce Tutorial
In this blog, we have checked the closedDate of the whole Opportunity records and sent a mail of all opportunities whose closedDate is less than today to the Opportunity owner with the link of a Detail page for changing the closedDate of the Opportunity in a table format.
for(string key :map2.keyset()){ htmlBody = 'Hi ' +map2.get(key)+ '<br /> \nPlease review the below opportunities which are closing today and kindly take the required actions \n <br /> <table border="1" style="border-collapse: collapse"><tr><th>Name</th><th>StageName</th><th>CloseDate</th><th>Opportunity Link</th></tr>'; system.debug('htmlBody+++++'+htmlBody); for(Opportunity opp:map1.get(key)){ if(!strlist.contains(opp.owner.email)){ strlist.add(opp.Owner.email); system.debug('strlist====1' +strlist); } String baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); oppName=opp.Name; system.debug('oppName++++'+oppName); oppStageName=opp.StageName; oppLink = opp.id; htmlBody += '<tr><td>' + oppName + '</td><td>' + oppStageName +'</td><td>' + oppCloseDate + '</td><td>' +'/'+baseUrl + '/' +oppLink + '</td></tr>'; system.debug('FinalBody++++'+htmlBody); } system.debug('@@@@@@@@@@OppName+++'+oppName); htmlBody += '</table> <br /> \n Thank You <br /> \n Salesforce Automation \n'; Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); mail.setToAddresses(strlist); // system.debug('mailtoset++'+ mail.setToAddresses(strlist)); mail.setSenderDisplayName(UserInfo.getName()); mail.setSubject('Opportunity with close date today'); mail.setHTMLBody(htmlBody); system.debug('mail+++++'+mail); List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>{mail}; Messaging.sendEmail(mails); }
Check out another amazing blog by Aditya here: Why You Should Consider Investing In Salesforce Lightning
If you have any questions, let me know in the comment section.
Responses