global class CallingFromTrigger implements DataBase.Batchable{ Listcontlist=new List(); global CallingFromTrigger(Listclist){ contlist=clist; } global DataBase.QueryLocator start(Database.BatchableContext BC){ return(DataBase.getQueryLocator([SELECT Id,Email FROM Contact WHERE Id IN:contlist])); } global void execute(Database.BatchableContext BC,ListScope){ for(Contact c:Scope){ c.Description='if Email available then we have sent email'; } Database.update(Scope); } global void finish(Database.BatchableContext BC){ for(Contact c:contlist){ if(c.Email!=null){ Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); mail.setToAddresses(new String[] {c.Email}); mail.setSubject('Added in Contact'); String messageBody = 'Hii you are added in contact'; mail.setPlainTextBody(messageBody); Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail}); } } } }