我的codeigniter框架不会通过smtp发送电子邮件。我总是返回一个错误,他无法通过此服务器上的php通过smtp发送my。如果我通过复制和过去检查我的用户名,主机和密码来使用Web客户端登录到邮箱,那么它将起作用。所以我使用正确的主机,用户名和密码。
我认为我设置错误,但是我不知道什么。
那是email_helper
$config['mailpath'] = "/usr/bin/sendmail"; // or "/usr/sbin/sendmail"
$config['protocol'] = "smtp";
$config['smtp_host'] = $settings['smtp_host']; (smtp.domain.com)
$config['smtp_port'] = $settings['smtp_port']; (465)
$config['smtp_timeout'] = '30';
$config['smtp_user'] = $settings['smtp_user']; (email = user)
$config['smtp_pass'] = $settings['smtp_pass']; (my password)
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['wordwrap'] = TRUE;
$controller->load->library('email');
$controller->email->initialize($config);
$controller->email->from( $settings['email_from'] , $settings['application_name'] );
$controller->email->to($to);
$controller->email->subject($subject);
$controller->email->message($body);
if($cc != '')
{
$controller->email->cc($cc);
}
if($attachment != '')
{
$controller->email->attach(base_url()."your_file_path/" .$attachment);
}
if($controller->email->send()){
return "success";
}
else
{
echo $controller->email->print_debugger();
}
}
我也从$ settings数组中检查了正确的值。
要发送电子邮件,我以这种方式进行 $ this-> mailer-> mail_template($ to,'forget-password',$ mail_data);
答案 0 :(得分:0)
添加ssl信息即可解决问题
$config['smtp_crypto'] = 'ssl';