function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
EvertonSzekeresEvertonSzekeres 

Too many email invocations: 11

I'm trying do deploy one trigger and one test class:

trigger DeleteTask_Solicitacao_Pagamento on Case (after update){
          
    Set <id> ids = new Set <id> ();
    for (Case c: trigger.new){
        if (c.motivo__c == 'Solicitação de Pagamento' && c.status <> 'Fechado'){
            ids.add(c.id);
        }
    }
            
  for (Case c: trigger.new) {
      if ((c.Quantas_PP_s_pagamento__c >= 1 || c.Quantidade_de_PP_s_Estojo__c >= 1) && c.tipo_de_pagamento__c == 'DESPESAS' && (c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados')){
      if(ids.size()>0){
          List <Task> t=[SELECT Id, description, Solicita_o_de_Pagamento__c, ownerid FROM Task WHERE (subject = 'Solicitação de Pagamento - Lançar PP' OR subject = 'Solicitação de Pagamento - Baixar PP') AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
          t[0].description = c.tipo_de_pagamento__c;
          t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
          t[0].ownerid = '005U0000002KGRq';
          update t;
         }
      }
      }
      }
  for (Case c: trigger.new) {
      if ((c.Quantas_PP_s_pagamento__c >= 1 || c.Quantidade_de_PP_s_Estojo__c >= 1) && c.tipo_de_pagamento__c == 'TURMAS' && (c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados')){
      if(ids.size()>0){
          List <Task> t=[SELECT Id, description, Solicita_o_de_Pagamento__c FROM Task WHERE (subject = 'Solicitação de Pagamento - Lançar PP' OR subject = 'Solicitação de Pagamento - Baixar PP') AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
          t[0].description = c.tipo_de_pagamento__c;
          t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
          t[0].ownerid = '005U0000001KrZy';
         update t;
         }
      }
      }
      }
     
    for (Case c: trigger.new) {
      if ((c.Quantas_PP_s_pagamento__c < 1 || c.Quantas_PP_s_pagamento__c == null) && (c.Quantidade_de_PP_s_Estojo__c < 1 || c.Quantidade_de_PP_s_Estojo__c == null) || (c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados')){
      if(ids.size()>0){
      List <Task> t=[SELECT whatid, subject, status FROM Task WHERE subject = 'Solicitação de Pagamento - Lançar PP' AND status != 'Concluído' AND whatid IN: ids];
      if (t.size()>0){
         
      delete t;
          }
      }
      }
      }
     
    for (Case c: trigger.new) {
      if ((c.Nota_fiscal__c == 'SIM' && c.tipo_de_pagamento__c == 'TURMAS') && (c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados')){
      if(ids.size()>0){
          List <Task> t=[SELECT description, Solicita_o_de_Pagamento__c FROM Task WHERE subject = 'Solicitação de Pagamento - Solicitar Nota Fiscal' AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
          t[0].description = c.tipo_de_pagamento__c;
          t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
          t[0].ownerid = '005U0000001KrZy';
         update t;
         }
      }
      }
      }
     
    for (Case c: trigger.new) {
      if ((c.Nota_fiscal__c == 'SIM' && c.tipo_de_pagamento__c == 'DESPESAS') && (c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados')){
      if(ids.size()>0){
          List <Task> t=[SELECT description, Solicita_o_de_Pagamento__c FROM Task WHERE subject = 'Solicitação de Pagamento - Solicitar Nota Fiscal' AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
          t[0].description = c.tipo_de_pagamento__c;
          t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
          t[0].ownerid = '005U0000002KGRq';
         update t;
         }
      }
      }
      }
     
    for (Case c: trigger.new) {
      if (c.Nota_fiscal__c != 'SIM' || (c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados')){
      if(ids.size()>0){
          List <Task> t=[SELECT whatid, subject, status FROM Task WHERE subject = 'Solicitação de Pagamento - Solicitar Nota Fiscal' AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
      delete t;
          }
      }
      }
      }
     
      for (Case c: trigger.new) {
      if ((c.forma_de_pagamento__c == 'MALOTE' || c.forma_de_pagamento__c == 'DEPÓSITO + MALOTE') && c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados'){
      if(ids.size()>0){
          List <Task> t=[SELECT description, Solicita_o_de_Pagamento__c FROM Task WHERE subject = 'Solicitação de Pagamento - Malote' AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
          t[0].description = c.tipo_de_pagamento__c;
          t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
         update t;
         }
      }
      }
      }
     
    for (Case c: trigger.new) {
       if ((c.forma_de_pagamento__c != 'MALOTE' && c.forma_de_pagamento__c != 'DEPÓSITO + MALOTE') || (c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados')){
       if(ids.size()>0){
       List <Task> t=[SELECT whatId, subject, status FROM Task WHERE subject = 'Solicitação de Pagamento - Malote' AND status != 'Concluído' AND whatid IN: ids];
       if (t.size()>0){
         
          delete t;
      }
       }
       }
       }
      
    for (Case c: trigger.new) {
       if ((c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados') && c.Forma_de_pagamento__c == 'MALOTE' && (c.Quantas_PP_s_pagamento__c == 0 || c.Quantas_PP_s_pagamento__c == null) && (c.Quantidade_de_PP_s_Estojo__c == 0 || c.Quantidade_de_PP_s_Estojo__c == null)){
       if(ids.size()>0){
          List <Task> t=[SELECT Solicitar_Malote__c, Solicitar_Dep_sito__c, Solicitar_PP__c, Solicita_o_de_Pagamento__c, subject, Respons_vel_por_resolver_a_tarefa__c, ActivityDate, Ownerid FROM Task WHERE Subject = 'Solicitação de Pagamento - Aprovar solicitação' AND status != 'Concluído' AND whatid IN: ids];
          if (t.size()>0){
         
               t[0].Solicitar_Malote__c = true;
               t[0].Solicitar_Dep_sito__c = false;
               t[0].Solicitar_PP__c = false;
               t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
               t[0].Subject = 'Solicitação de Pagamento - Aprovar solicitação';
               t[0].Respons_vel_por_resolver_a_tarefa__c = 'CARLOS BALMA';
               t[0].description = c.tipo_de_pagamento__c;
               t[0].ActivityDate = Date.today();
               t[0].Ownerid = '005U0000000FDE9';
         update t;
         }
         }
         }
         }
        
        for (Case c: trigger.new) {
      if ((c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados') && c.Forma_de_pagamento__c == 'DEPÓSITO + MALOTE' && (c.Quantas_PP_s_pagamento__c == 0 || c.Quantas_PP_s_pagamento__c == null) && (c.Quantidade_de_PP_s_Estojo__c == 0 || c.Quantidade_de_PP_s_Estojo__c == null)){
      if(ids.size()>0){
             List <Task> t=[SELECT Solicitar_Malote__c, Solicitar_Dep_sito__c, Solicitar_PP__c, Solicita_o_de_Pagamento__c, subject, Respons_vel_por_resolver_a_tarefa__c, ActivityDate, Ownerid FROM Task WHERE Subject = 'Solicitação de Pagamento - Aprovar solicitação' AND status != 'Concluído' AND whatid IN: ids];
             if (t.size()>0){
         
               t[0].description = c.tipo_de_pagamento__c;
               t[0].Solicitar_PP__c = false;
               t[0].Solicitar_Malote__c = true;
               t[0].Solicitar_Dep_sito__c = true;
               t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
               t[0].Subject = 'Solicitação de Pagamento - Aprovar solicitação';
               t[0].Respons_vel_por_resolver_a_tarefa__c = 'CARLOS BALMA';
               t[0].description = c.tipo_de_pagamento__c;
               t[0].ActivityDate = Date.today();
               t[0].Ownerid = '005U0000000FDE9';
         update t;
         }
         }
         }
         }       
        
            for (Case c: trigger.new) {
        if ((c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados') && c.Forma_de_pagamento__c != 'MALOTE' && (c.Quantas_PP_s_pagamento__c > 0 || c.Quantidade_de_PP_s_Estojo__c > 0)){
        if(ids.size()>0){
            List <Task> t=[SELECT Solicitar_Malote__c, Solicitar_Dep_sito__c, Solicitar_PP__c, Solicita_o_de_Pagamento__c, subject, Respons_vel_por_resolver_a_tarefa__c, ActivityDate, Ownerid FROM Task WHERE Subject = 'Solicitação de Pagamento - Aprovar solicitação' AND status != 'Concluído' AND whatid IN: ids];
            if (t.size()>0){
         
               t[0].description = c.tipo_de_pagamento__c;
               t[0].Solicitar_PP__c = true;
               t[0].Solicitar_Malote__c = false;
               t[0].Solicitar_Dep_sito__c = false;
               t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
               t[0].Subject = 'Solicitação de Pagamento - Aprovar solicitação';
               t[0].Respons_vel_por_resolver_a_tarefa__c = 'CARLOS BALMA';
               t[0].description = c.tipo_de_pagamento__c;
               t[0].ActivityDate = Date.today();
               t[0].Ownerid = '005U0000000FDE9';
       update t;
        }
        }
        }
        }
       
    for (Case c: trigger.new) {
        if ((c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados') && c.Forma_de_pagamento__c == 'MALOTE' && (c.Quantas_PP_s_pagamento__c > 0 || c.Quantidade_de_PP_s_Estojo__c > 0)){
        if(ids.size()>0){
        List <Task> t=[SELECT Solicitar_Malote__c, Solicitar_Dep_sito__c, Solicitar_PP__c, Solicita_o_de_Pagamento__c, subject, Respons_vel_por_resolver_a_tarefa__c, ActivityDate, Ownerid FROM Task WHERE Subject = 'Solicitação de Pagamento - Aprovar solicitação' AND status != 'Concluído' AND whatid IN: ids];
        if (t.size()>0){
         
            t[0].description = c.tipo_de_pagamento__c;
               t[0].Solicitar_PP__c = true;
               t[0].Solicitar_Malote__c = true;
               t[0].Solicitar_Dep_sito__c = false;
               t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
               t[0].Subject = 'Solicitação de Pagamento - Aprovar solicitação';
               t[0].Respons_vel_por_resolver_a_tarefa__c = 'CARLOS BALMA';
               t[0].description = c.tipo_de_pagamento__c;
               t[0].ActivityDate = Date.today();
               t[0].Ownerid = '005U0000000FDE9';
      update t;
        }
        }
        }
}

    for (Case c: trigger.new) {
        if ((c.Tipo_de_solicita_o__c == 'Despesas com equipe de vendas' || c.Tipo_de_solicita_o__c == 'Cache' || c.Tipo_de_solicita_o__c == 'Mostruarios' || c.Tipo_de_solicita_o__c == 'Laboratório por fora do sistema' || c.Tipo_de_solicita_o__c == 'Devolução de venda' || c.Tipo_de_solicita_o__c == 'Divisão de resultados') && c.Forma_de_pagamento__c == 'DEPÓSITO + MALOTE' && (c.Quantas_PP_s_pagamento__c > 0 || c.Quantidade_de_PP_s_Estojo__c > 0)){   
        if(ids.size()>0){
        List <Task> t=[SELECT Solicitar_Malote__c, Solicitar_Dep_sito__c, Solicitar_PP__c, Solicita_o_de_Pagamento__c, subject, Respons_vel_por_resolver_a_tarefa__c, ActivityDate, Ownerid FROM Task WHERE Subject = 'Solicitação de Pagamento - Aprovar solicitação' AND status != 'Concluído' AND whatid IN: ids];
        if (t.size()>0){
         
               t[0].description = c.tipo_de_pagamento__c;
               t[0].Solicitar_PP__c = true;
               t[0].Solicitar_Malote__c = true;
               t[0].Solicitar_Dep_sito__c = true;
               t[0].Solicita_o_de_Pagamento__c = c.Tipo_de_solicita_o__c;
               t[0].Subject = 'Solicitação de Pagamento - Aprovar solicitação';
               t[0].Respons_vel_por_resolver_a_tarefa__c = 'CARLOS BALMA';
               t[0].description = c.tipo_de_pagamento__c;
               t[0].ActivityDate = Date.today();
               t[0].Ownerid = '005U0000000FDE9';
       update t;
        }
        }
        }
        }
       
    for (Case c: trigger.new) {
       if (c.Tipo_de_solicita_o__c != 'Despesas com equipe de vendas' && c.Tipo_de_solicita_o__c != 'Cache' && c.Tipo_de_solicita_o__c != 'Mostruarios' && c.Tipo_de_solicita_o__c != 'Laboratório por fora do sistema' && c.Tipo_de_solicita_o__c != 'Devolução de venda' && c.Tipo_de_solicita_o__c != 'Divisão de resultados'){
       if(ids.size()>0){
       List <Task> t=[SELECT whatId, subject, status FROM Task WHERE (subject = 'Solicitação de Pagamento - Aprovar solicitação' OR subject = 'Solicitação de Pagamento - Não aprovada') AND status != 'Concluído' AND whatid IN: ids];
       if (t.size()>0){
         
          delete t;
      }
       }
       }
       }
      
}


I got this error message:
"Failure Message: "System.LimitException: Too many Email Invocations: 11", Failure Stack Trace: "Trigger.Email_SolicitacaoExt_Pag2: line 129, column 1"
EvertonSzekeresEvertonSzekeres
Test class:

@IsTest(SeeAllData=true)
public class CriarTarefaEmail_SolicitacaoExt_pag {

    static testMethod void myUnitTest() {               
     
      Case c = new Case(tipo_de_pagamento__c = 'TURMAS', SuppliedEmail = 'teste@teste.com.br', Email_atendimento_alternativo__c = 'teste@teste.com.br', Email_atendimento_alternativo2__c = 'teste@teste.com.br', motivo__c = 'Solicitação de Pagamento', Forma_de_pagamento__c = 'MALOTE', status = 'Novo', Quantas_PP_s_pagamento__c = 5, Quantidade_de_PP_s_Estojo__c = 5, Tipo_de_solicita_o__c  = 'Cache');
      insert c;
       
        c.SuppliedEmail = 'tee@ste.com.br'; c.Email_atendimento_alternativo__c = 'tes@tes.com.br'; c.Email_atendimento_alternativo2__c = 'tte@tes.com.br';
        update c;
       
       Task t = new Task(Status='Nenhum', Priority='Normal', description = 'TMAS', subject = 'Solicitação de Pagamento - Aprovar solicitação', whatid=c.id, Solicita_o_de_Pagamento__c=c.Forma_de_pagamento__c);
       insert t;
       
        t.description='TURMAS'; t.Status='Não iniciado';
        update t;
       
        //

        c.SuppliedEmail = 'tee@ste.com.br'; c.Email_atendimento_alternativo__c = 'tes@tes.com.br'; c.Email_atendimento_alternativo2__c = 'tte@tes.com.br'; c.Forma_de_pagamento__c = 'DEPÓSITO + MALOTE';
        update c;
       
       Task t2 = new Task(Status='Nenhum', Priority='Normal', description = 'TMAS', subject = 'Solicitação de Pagamento - Aprovar solicitação', whatid=c.id, Solicita_o_de_Pagamento__c=c.Forma_de_pagamento__c);
       insert t2;
       
        t2.description='TURMAS'; t2.Status='Não iniciado';
        update t2;
       
        //
       
        Case c3 = new Case(tipo_de_pagamento__c = 'TURMAS', SuppliedEmail = 'teste@teste.com.br', Email_atendimento_alternativo__c = 'teste@teste.com.br', Email_atendimento_alternativo2__c = 'teste@teste.com.br', motivo__c = 'Solicitação de Pagamento', Forma_de_pagamento__c = 'DEPÓSITO + MALOTE', status = 'Novo', Quantas_PP_s_pagamento__c = 0, Quantidade_de_PP_s_Estojo__c = 0, Tipo_de_solicita_o__c  = 'Cache');
      insert c3;
       
        c3.SuppliedEmail = 'tee@ste.com.br'; c3.Email_atendimento_alternativo__c = 'tes@tes.com.br'; c3.Email_atendimento_alternativo2__c = 'tte@tes.com.br'; c3.Forma_de_pagamento__c = 'DEPÓSITO + MALOTE'; c3.Quantas_PP_s_pagamento__c = null; c3.Quantidade_de_PP_s_Estojo__c = null;
        update c3;
       
       Task t3 = new Task(Status='Nenhum', Priority='Normal', description = 'TMAS', subject = 'Solicitação de Pagamento - Aprovar solicitação', whatid=c3.id, Solicita_o_de_Pagamento__c=c3.Forma_de_pagamento__c);
       insert t3;
       
        t3.description='TURMAS'; t3.Status='Não iniciado'; t3.Solicitar_PP__c = false;
        update t3;
       
        //
       
        Case cl = new Case(tipo_de_pagamento__c = 'TURMAS', SuppliedEmail = 'teste@teste.com.br', Email_atendimento_alternativo__c = 'teste@teste.com.br', Email_atendimento_alternativo2__c = 'teste@teste.com.br', motivo__c = 'Solicitação de Pagamento', Forma_de_pagamento__c = 'DEPÓSITO + MALOTE', status = 'Novo', Quantas_PP_s_pagamento__c = 5, Quantidade_de_PP_s_Estojo__c = 5, Tipo_de_solicita_o__c  = 'Laboratório sistema FF');
      insert cl;
       
        cl.SuppliedEmail = 'tee@ste.com.br'; cl.Email_atendimento_alternativo__c = 'tes@tes.com.br'; cl.Email_atendimento_alternativo2__c = 'tte@tes.com.br';
        update cl;
       
       Task td = new Task(Status='Nenhum', Priority='Normal', description='TMAS' ,subject = 'Solicitação de Pagamento - Lançar PP', whatid=cl.id, Solicita_o_de_Pagamento__c=cl.Tipo_de_solicita_o__c);
       insert td;
       
        td.description='TURMAS'; td.Status='Não iniciado';
        update td;
       
        //
     
    }
}


Trigger 2:

trigger Email_SolicitacaoExt_Pag2 on Task (after update) {

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

for(Task t : trigger.new){
      
       if(t.subject == 'Solicitação de Pagamento - Aprovar solicitação' && t.Aprovado__c == 'SIM' && t.status == 'Concluído' && t.description == 'TURMAS'){

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[]{};
    system.debug(t.whatid);
Case c = [SELECT SuppliedEmail, NOME_DO_FORNECEDOOR__c, motivo__c, Valor_final_pagamento__c, pits__c FROM Case WHERE Id=:t.whatid LIMIT 10];

if(c.suppliedemail != null){

  system.debug(c.SuppliedEmail);
    toAddresses.add(c.SuppliedEmail);       
mail.setToAddresses(toAddresses);
   
    String[] BccAddresses = new String[]{};
        BccAddresses.add('guilherme.cadelca@cp7.com.br');
            BccAddresses.add('joao.bernardes@cp7.com.br');
            BccAddresses.add('raquel.fonseca@cp7.com.br');
    mail.setBccAddresses(BccAddresses);
   
    mail.setreplyto('guilherme.cadelca@cp7.com.br');
   
mail.setSenderDisplayName(c.motivo__c);
           
    mail.setSubject('Solicitação de pagamento - Aprovada');
    mail.setHtmlBody('<font size="4">Olá, '+c.NOME_DO_FORNECEDOOR__c+'</font><p>A solicitação de pagamento foi aprovada e logo iremos finalizar o pagamento.</p><p>Assim que for finalizado, mandaremos um novo e-mail.</p><p>Qualquer dúvida responda esse e-mail.</p><p>Referente ao valor: '+c.Valor_final_pagamento__c+'\n\nReferente ao(s) PIT(s): '+c.PITs__c+'</p>');
     mails.add(mail);
    }
}
}
    for(Task t : trigger.new){
   
    if(t.subject == 'Solicitação de Pagamento - Aprovar solicitação' && t.Aprovado__c == 'SIM' && t.status == 'Concluído' && t.description == 'DESPESAS'){

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[]{};
    system.debug(t.whatid);
Case c = [SELECT SuppliedEmail, NOME_DO_FORNECEDOOR__c, motivo__c, Valor_final_pagamento__c, pits__c FROM Case WHERE Id=:t.whatid LIMIT 10];

if(c.suppliedemail != null){

system.debug(c.SuppliedEmail);
toAddresses.add(c.SuppliedEmail);
    mail.setToAddresses(toAddresses);
   
    String[] BccAddresses = new String[]{};
            toAddresses.add('bruna.fagiolo@cp7.com.br');            
            toAddresses.add('aline.diniz@cp7.com.br');
    mail.setBccAddresses(BccAddresses);
   
    mail.setreplyto('bruna.fagiolo@cp7.com.br');
   
mail.setSenderDisplayName(c.motivo__c);
           
    mail.setSubject('Solicitação de pagamento - Aprovada');
    mail.setHtmlBody('<font size="4">Olá, '+c.NOME_DO_FORNECEDOOR__c+'</font><p>A solicitação de pagamento foi aprovada e logo iremos finalizar o pagamento.</p><p>Assim que for finalizado, mandaremos um novo e-mail.</p><p>Qualquer dúvida responda esse e-mail.</p><p>Referente ao valor: '+c.Valor_final_pagamento__c+'\n\nReferente ao(s) PIT(s): '+c.PITs__c+'</p>');
    mails.add(mail);
    }
    }
    }
    for(Task t : trigger.new){

    if(t.subject == 'Solicitação de Pagamento - Aprovar solicitação' && t.Aprovado__c == 'NÃO' && t.status == 'Concluído' && t.description == 'TURMAS'){

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[]{};
    system.debug(t.whatid);
Case c = [SELECT SuppliedEmail, NOME_DO_FORNECEDOOR__c, motivo__c, Valor_final_pagamento__c, pits__c FROM Case WHERE Id=:t.whatid LIMIT 10];

if(c.suppliedemail != null){

system.debug(c.SuppliedEmail);
toAddresses.add(c.SuppliedEmail);
    mail.setToAddresses(toAddresses);
   
    String[] BccAddresses = new String[]{};
            toAddresses.add('guilherme.cadelca@cp7.com.br');
            toAddresses.add('joao.bernardes@cp7.com.br');
            toAddresses.add('raquel.fonseca@cp7.com.br');
    mail.setBccAddresses(BccAddresses);
   
    mail.setreplyto('guilherme.cadelca@cp7.com.br');
   
mail.setSenderDisplayName(c.motivo__c);
           
    mail.setSubject('Solicitação de pagamento - Não Aprovada');
    mail.setHtmlBody('<font size="4">Olá, '+c.NOME_DO_FORNECEDOOR__c+'</font><p>A solicitação de pagamento não foi aprovada por problemas internos, já estamos disponibilizando uma nova solicitação.</p><p>Assim que for solicitado, mandaremos um novo e-mail.</p><p>Qualquer dúvida responda esse e-mail.</p><p>Referente ao valor: '+c.Valor_final_pagamento__c+'\n\nReferente ao(s) PIT(s): '+c.PITs__c+'</p>');
    mails.add(mail);
    }
    }
    }
   
    for(Task t : trigger.new){
   
    if(t.subject == 'Solicitação de Pagamento - Aprovar solicitação' && t.Aprovado__c == 'NÃO' && t.status == 'Concluído' && t.description == 'DESPESAS'){

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[]{};
    system.debug(t.whatid);
Case c = [SELECT SuppliedEmail, NOME_DO_FORNECEDOOR__c, motivo__c, Valor_final_pagamento__c, pits__c FROM Case WHERE Id=:t.whatid LIMIT 10];

if(c.suppliedemail != null){

system.debug(c.SuppliedEmail);
toAddresses.add(c.SuppliedEmail);
    mail.setToAddresses(toAddresses);
   
    String[] BccAddresses = new String[]{};
            toAddresses.add('bruna.fagiolo@cp7.com.br');            
            toAddresses.add('aline.diniz@cp7.com.br');
    mail.setBccAddresses(BccAddresses);
   
    mail.setreplyto('bruna.fagiolo@cp7.com.br');
   
mail.setSenderDisplayName(c.motivo__c);
           
    mail.setSubject('Solicitação de pagamento - Não Aprovada');
    mail.setHtmlBody('<font size="4">Olá, '+c.NOME_DO_FORNECEDOOR__c+'</font><p>A solicitação de pagamento não foi aprovada por problemas internos, já estamos disponibilizando uma nova solicitação.</p><p>Assim que for solicitado, mandaremos um novo e-mail.</p><p>Qualquer dúvida responda esse e-mail.</p><p>Referente ao valor: '+c.Valor_final_pagamento__c+'\n\nReferente ao(s) PIT(s): '+c.PITs__c+'</p>');
    mails.add(mail);
    }
    }
    }
   
    Messaging.sendEmail(mails);
}
SFDC_DevloperSFDC_Devloper
Hi,

You can only invoke 10 Send Emails per Context. That is governor limit. You are hitting 11 emails and its bombing.

To fix this, you can create a Batch Apex Class that your Schedule Apex invokes. Move the Send Email logic inside your Batch Apex class and scope the batch so that is only processes 10 contacts at a time.

http://forceguru.blogspot.in/2011/03/how-to-send-more-than-10-e-mails.html
http://help.salesforce.com/apex/HTViewSolution?id=000003864&language=en_US (http://help.salesforce.com/apex/HTViewSolution?id=000003864&language=en_US)

Thanks,
Allways Cool
EvertonSzekeresEvertonSzekeres
Thanks !

So,
I have to desactivate my trigger and add this?

public static void DispatchEmail() {

    List lstMails = new List();

      lst = 20;

       for(Integer i : lst) {

          Messaging.SingleEmailMessage message = getEmail();      

//Construct the email message here by populating the values such as body, subject

                //Adding emails to the list      

lstMails.add(message);

    } 

   //Sending the email list in a single call.

    Messaging.sendEmail(lstMails);

  }



public static Messaging.SingleEmailMessage getEmail() {

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

    mailMessage.setSaveAsActivity(false);

    return mailMessage;

  }