Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • 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.