salesforce バッチ 処理終了の送信

global void finish(Database.BatchableContext BC){
        AsyncApexJob a = [SELECT Id, Status, NumberOfErrors, JobItemsProcessed,
                          TotalJobItems, CreatedBy.Email
                          FROM AsyncApexJob WHERE Id =
                          :BC.getJobId()];
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        mail.setToAddresses(new String[]{'testmail@salesforce.com'});
        mail.setReplyTo('noreply@salesforce.com');
        mail.setSenderDisplayName('Batchプロセス');
        mail.setSubject('Batch完了');
        mail.setPlainTextBody('Batch完了しました。エラー' + a.NumberOfErrors +'件');
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

    }