Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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?
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?
>
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?
Eu busco em banco de dados ou o conteúdo é estático. Já testou ver o conteúdo de $msg antes de enviar?
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.
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
Normalmente a porta 587 requer autenticação TLS.