Ir para conteúdo
clovis.sardinha

Mandar e-mail para vários usuários

Recommended Posts

Estou tentando mandar e-mail para vários usuários, mas só vai para o primeiro, quando tento colocar para vários dá erro. Alguém pode sugerir como fazer?

 

if ($this->form_validation->run() == true) {
            $this->load->model('emailReplayModel');
            $user=$this->emailReplayModel->emailreplay(); //$user tem os dados dos usuários que quero mandar -veja abaixo
                
                foreach ($user as &$i){
                    
            $this->email->from("atendimento@portaldapermuta.com", 'Portal da Permuta');
            $this->email->subject("Continue seu cadastramento no Portal - é facil");
            $email=$i['email'];
            $this->email->to($email);
            $msg=$this->load->view('usuario/emailReplayFinal',array($senha,'senha' =>$i['senha'],$nome,'nome'=>$i['nome_interessado']),TRUE);
            $this->email->message($msg);
            $this->email->send();
                                        }
            $this->email->send();
            
        if($this->email->send())    {
                    
                $this->session->set_flashdata('success', 'Mensagens enviadas.');
                redirect('admin/painel/painel_adm');
            }

 

debug do $user:

[user] => Array
        (
            [0] => Array
                (
                    [id_interessado] => 23595
                    [nome_interessado] => CLOVIS 
                    [senha] => xxxx
                    [email] => clovis.sardinha@teste2.com
                    [data_inscricao] => 2020-10-12 14:35:43
                )

            [1] => Array
                (
                    [id_interessado] => 23596
                    [nome_interessado] => ANDRADE 
                    [senha] => xxxxx
                    [email] => clovis.sardinha@teste3.com
                    [data_inscricao] => 2020-10-12 16:22:27
                )

            )

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

w

5 minutos atrás, washalbano disse:

Olá!
Dentro do foreach, "limpe/resete"  as variáveis com


$this->email->clear();

Faça com que seja a primeira linha dentro do seu foreach

 

Funcionou legal. Só uma coisa ainda está pegando. Algo no looping, porque o ultimo registro recebe 2 e-mails.  Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, washalbano disse:

É um profundo mistério.

Já se certificou de que o referido email não está repetido/duplicado no array?

Pior que não.  O array esta certo, verifiquei o bd também e não tem dupla. Ai pensei vai assim mesmo, mas no servidor da locaweb deu um monte de erros. Mas engraçado é que receberam os emails e parece que o erro foi só no último. Deve ser algo do php ou versão do php, né? Ou na library do codeigniter.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 27/10/2020 at 12:08, washalbano disse:

É um profundo mistério.

Já se certificou de que o referido email não está repetido/duplicado no array?

Matei a charada. Aí está o código correto. Tinha um e-mail send a mais rodando depois de fechar o envio.  Coloquei uma variável para encerrar o processo . 

$emailsEnviados = true;
				foreach ($user as &$i){
        			$this->email->clear();
        			$this->email->from("atendimento@portaldapermuta.com", 'Portal da Permuta');
        			$this->email->subject("Continue seu cadastramento no Portal - é facil");
        			$email=$i['email'];
        			$this->email->to($email);
        			$msg=$this->load->view('usuario/emailReplayFinal',array($senha,'senha' =>$i['senha'],$nome,'nome'=>$i['nome_interessado']),TRUE);
        			$this->email->message($msg);
        			
        			if(!$this->email->send()){
        			    $emailsEnviados = false;
        			}
				}
			
				if($emailsEnviados)	{
					
				$this->session->set_flashdata('success', 'Mensagens enviadas.');
				redirect('admin/painel/painel_adm');
			}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.