Ir para conteúdo

POWERED BY:

Arquivado

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

rockrgo

Enviando email com Codeigniter

Recommended Posts

Boa tarde pessoal,

 

estou com uma aplicação no Codeigniter em que tenho que disparar um email para o usuário, estou fazendo uma conexão via smtp no servidor da Locaweb. (Até aí tudo muito bom néh, Codeigniter e Locaweb juntos...rsrs).

 

Quanto faço o teste do meu servidor local o email chega, mas quando minha aplicação está no servidor da locaweb a mensagem não chega.

 

Meu config:

$config['protocol'] = 'smtp';
$config['smtp_host'] = '***';
$config['smtp_user'] = '***';
$config['smtp_pass'] = '***';
$config['smtp_port'] = '587';

$config['mailtype'] = 'html';
$config['newline'] = '\r\n';
$config['wordwrap'] = TRUE;

Meu código de envio:

                    $this->load->library('email');
                    $this->email->initialize();

                    $de = 'email@teste.com.br';       
                    $para = $this->session->userdata('cliente_session')->email; 

                    $msg = $this->load->view('admin/email/novo_pedido', $dadosEmail, TRUE);

                    $this->email->from($de, "Teste");               
                    $this->email->to($para);                         
                    $this->email->subject('Nova Reserva - Pedido #'.$pedido);      
                    $this->email->message($msg);	            
                    if($this->email->send()) 
                          print $this->email->print_debugger();

Alguém já passou por este problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normalmente a porta 587 requer autenticação TLS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o problema só ocorre quando o tipo da mensagem é html...quando é texto simples o disparo ocorre normalmente. No localhost tudo ocorre perfeitamente, tem alguma configuração de servidor que possa estar atrapalhando o envio?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso o locaweb e não tenho problemas. A sua configuração está correta.

 

Acredito que você tenha colocado isto corretamente:

$config['smtp_host'] = 'smtp.seudominio.com.br';

A única diferença é que eu coloco sempre um texto alternativo:

$this->email->set_alt_message($texto_alternativo);

O que está apresentando o print_debbuger?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso o locaweb e não tenho problemas. A sua configuração está correta.

 

Acredito que você tenha colocado isto corretamente:

$config['smtp_host'] = 'smtp.seudominio.com.br';

A única diferença é que eu coloco sempre um texto alternativo:

$this->email->set_alt_message($texto_alternativo);

O que está apresentando o print_debbuger?

 

Mas o conteúdo do seu email é carregado através de uma view?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu busco em banco de dados ou o conteúdo é estático. Já testou ver o conteúdo de $msg antes de enviar?

 

Desculpa a demora, tinha dado uma pausa neste projeto. Então, o conteúdo da $msg está normal quando mando imprimir esta variável ele mostra o template.

 

Quanto ao print debugger está mostrando a mensagem de enviado com sucesso pelo protocolo smtp.

 

Ta estranho isso, pois do servidor local ele faz a conexão smtp no servidor da locaweb e envia, mas quando a aplicação está no próprio servidor da locaweb ocorre a mensagem de enviado com sucesso mas o email não chega. Fiz alguns outros testes e no email do yahoo eu recebo, já no gmail não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa é que estou utilizando a versão do php 5.4.28. Já utilizou nesta versão?


Pessoal resolvido,

 

Implementei o PHPMailer ao codeigniter, segue exemplo da implementação

https://github.com/ivantcholakov/codeigniter-phpmailer

 

um outro ponto é colocar

$this->email->set_newline("\r\n");

antes do initialize(). Havia tentado isto antes mas não havia funcionado.

 

Mas está funcionando agora!

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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