Sending Email To Public Group:
This example shows how to send an email to public group when a record is created on opportunity unit is a child of standard opportunity.In this example consider public groups having naming conventions like Operations-India,Operations-Hyderabad,Operations-Google....The Trigger looks likes this
trigger Opportunity_Unit_trg on Opportunity_Unit__c (after insert) {
list <string> ActId=new list <string> ();
list <string> OppID = new list <string>();
list <Opportunity> oppLst= new list <Opportunity> ();
list <Opportunity_Unit__c> oppActLst = new list <Opportunity_Unit__c>();
string ActName;
for (Opportunity_Unit__c oppUnitRec:Trigger.new) {
//ActID.add(oppUnitRec.Unit__c);
Opportunity Opprec=[Select name from Opportunity where id=:oppUnitRec.Opportunity__c];
list <Account> actLst= new list <Account>();
actLst=[Select ID,name,Region__c,Sales_Level__c from Account where id =:oppUnitRec.Unit__c];
list <string> strGrpName= new list <string>();
for (Account actRec:actLst){
strGrpName.add('Operations - '+actRec.Name);
list <group> grplst=new list <group>();
grplst=[Select ID from group where name in :strGrpName ];
if (grplst.size()>0){
list <string> strgrmMbr=new list <string>();
list <GroupMember> grmMbrLst = new list <GroupMember>();
grmMbrLst = [Select UserOrGroupId from GroupMember where GroupId in:grplst];
list <string> usrIdLst= new list <string>();
for (GroupMember grprec:grmMbrLst){
usrIdLst.add(grprec.UserOrGroupId);
}
list <User> usrLst=new list <user>();
usrLst=[Select Email from User where id in :usrIdLst];
list <string> EmailId=new list <string>();
for (User usrrec:usrLst){
EmailId.add(usrrec.Email);
}
string strMailBdy='The following Opportunity Unit has been created: \n\n\n\n';
strMailBdy +='Account:'+actRec.Name+'\n';
strMailBdy +='Sales Level: '+actRec.Sales_Level__c+'\n';
strMailBdy +='Region: '+actRec.Region__c+'\n';
strMailBdy +='Opportunity: '+Opprec.name+'\n';
strMailBdy +='Opportunity Unit: '+oppUnitRec.name+'\n';
strMailBdy +='Unit Amount: '+oppUnitRec.Amount__c+'\n';
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(EmailId);
mail.setReplyTo('support@ChromeAlloy.com');
mail.setSenderDisplayName('Salesforce Support');
mail.setSubject('Opportunity Unit Created.');
mail.setPlainTextBody(strMailBdy );
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
}
}
No comments:
Post a Comment