我遇到了代码点火器电子邮件的大问题。当我工作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.
答案 0 :(得分:0)
看起来您正在使用$config['protocol'] = 'mail';
您使用的是正确的协议吗?尝试更改为$config['protocol'] = 'smtp';
确保输入正确的smtp详细信息,并且服务器上的传出端口也不会被阻止。尝试使用另一个smtp服务器或使用MailSlurper在本地再次测试它,只是为了确认。
您可以阅读有关电子邮件偏好设置here的更多信息。