Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
)
)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É um profundo mistério.
Já se certificou de que o referido email não está repetido/duplicado no array?
>
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.
>
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');
}
Olá!
Dentro do foreach, "limpe/resete" as variáveis com