电子邮件不发送代码点火器

时间:2018-04-05 14:47:13

标签: php codeigniter email

我遇到了代码点火器电子邮件的大问题。当我工作localhost时,电子邮件通过smtp协议正常发送,但是当我到服务器时,邮件发送不起作用。

我的邮件配置:

$config['protocol'] = 'mail';
        $config['smtp_host'] = 'mail.duplov.com.br';
        $config['smtp_port'] = '587';
        $config['smtp_timeout'] = '30';
        $config['smtp_user']= '**********';
        $config['smtp_pass'] = '***********';
        $config['charset'] = 'utf-8';
        $config['newline'] = '\r\n';
        $config['mailtype'] = 'html';

详细说明stmp_pass和stmtp_user我只是隐藏了。 我发送电子邮件代码:

public function validacao(){
        $this->load->library('form_validation');
        $this->form_validation->set_rules('nome','Nome','required|min_length[5]');
        $this->form_validation->set_rules('email','Email','required|valid_email');
        $this->form_validation->set_rules('telefone','Telefone','required|min_length[13]',array('min_length' => 'Você precisa colocar um telefone válido incluindo o DDD'));
        $this->form_validation->set_rules('mensagem','Mensagem','required|min_length[20]');

        if($this->form_validation->run() == FALSE){
            $erros = array('mensagens' => validation_errors());
            $jsonStr = json_encode($erros);
            echo $jsonStr;
        }
        else{
            if($mensagem = $this->enviar_mensagem($this->input->post('nome'),$this->input->post('email'),$this->input->post('telefone'),$this->input->post('mensagem'))){
                $sucesso['mensagens']   = 'sucesso';
                $jsonStr = json_encode($sucesso);
                echo $jsonStr;
            }else{
                $sucesso['mensagens']   = $this->email->print_debugger();
                $jsonStr = json_encode($sucesso);
                echo $jsonStr;
            }
        }
    }

    public function enviar_mensagem($nome,$email,$telefone,$mensagem){
        $this->load->model('funcoes');
        $this->funcoes ->contato($nome,$email,$telefone,$mensagem);
        $emails = $this->funcoes->get_infos();
        foreach ($emails as $em){
            $this->load->library('email');
            $dados['nome'] = $nome;
            $dados['email'] = $email;
            $dados['telefone'] = $telefone;
            $dados['mensagem'] = $mensagem;
            $mensagem = $this->load->view('email/template',$dados,true);
            $this->email->from("no-reply@duplov.com.br","Gerenciador do website");
            $this->email->to($em->email);
            $this->email->subject('Contato site');
            $this->email->message($mensagem);
            return $this->email->send();
        }

我得到的错误:

220-a1-caju27.servidorwebfacil.com ESMTP Exim 4.89_1 #1 Thu, 05 Apr 2018 11:44:31 -0300 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. 
hello: 250-a1-caju27.servidorwebfacil.com Hello oestedeminas.cphost0027.servidorwebfacil.com [200.98.245.32]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-CHUNKING
250-STARTTLS
250 HELP
Failed to authenticate password. Error: 535 Incorrect authentication data
It is not possible to send e-mail using PHP SMTP. Your server may not be configured to send mail using this method.

1 个答案:

答案 0 :(得分:0)

看起来您正在使用$config['protocol'] = 'mail';

您使用的是正确的协议吗?尝试更改为$config['protocol'] = 'smtp';确保输入正确的smtp详细信息,并且服务器上的传出端口也不会被阻止。尝试使用另一个smtp服务器或使用MailSlurper在本地再次测试它,只是为了确认。

您可以阅读有关电子邮件偏好设置here的更多信息。