Skip to main content
kumar raj asked in #Apex
Hi All,

Help me on this issue

I am trying to do now apex code.later i will start doing Batch apex.

public PageReference SendEmail()

    {

        List<user>userlist=[select id,name,email,lastlogindate from user where lastlogindate < last_N_days:38];

        List<Id> lstids= new List<Id>(); 

        for(User c:userlist) { 

            lstids.add(c.id);

        }         

        EmailTemplate et=[Select id from EmailTemplate where name = 'EmailTemplatename' limit 1];  

        Messaging.MassEmailMessage mail = new Messaging.MassEmailMessage(); 

        mail.setTargetObjectIds(lstids); 

        mail.setSenderDisplayName('System Admin'); 

        mail.setTemplateId(et.id); 

        Messaging.sendEmail(new Messaging.MassEmailMessage[] { mail }); 

        return null;

    } 
6 answers
  1. Nov 26, 2019, 12:04 PM
    Hello, 

    This is code is owrking find for me. 

     

    List<user> userlist=[select id,name,email,lastlogindate from user where lastlogindate < :DATE.TODAY()- 38];

    List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();

    EmailTemplate et=[Select id from EmailTemplate where name = 'EmailTemplatename' limit 1];

    for(user u : userlist){

    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();

    mail.setTargetObjectId(u.id);

    //mail.setHtmlBody('test');

    mail.setSenderDisplayName('System Admin');

    mail.setTemplateId(et.id);

    mail.setSaveAsActivity(false);

    mails.add(mail);

    }

    Messaging.sendEmail(mails);

    Thanks

    karthik
0/9000