Codeigniter Amazon SES SMTP连接错误



我想在CodeIgniter中使用Amazon SES发送电子邮件,我尝试了所有内容,我也尝试了在CodeIgniter上提出的早期问题,但是我无法找到解决方案。

public function add_applicants()
{
 $this->load->model('visa/India_model');
 $datan = $this->India_model->insertappdata();
 $appid = $datan[appid];
 $this->load->library('email');
 $config['protocol'] = 'smtp';
 $config['charset'] = 'ISO-8859-1';
 $config['mailtype'] = 'html';
 $config['smtp_host'] = "ssl://email-smtp.eu-west-1.amazonaws.com";
 $config['smtp_user'] = "SMTP USER SES";
 $config['smtp_pass'] = "SMTP Password SES";
 $config['smtp_port'] = "465";
 $config['newline'] = "rn";
 $config['mailsender'] = "support@indiaevisaservice.com";
 $config['smtp_crypto']  = 'tls';
$this->email->initialize($config);
$this->email->print_debugger();
$this->email->from('support@verfiedemail.com', 'GYEV Experts');
$this->email->to('imthegrv@gmail.com', 'Test To');
$this->email->subject('Test');
$this->email->message('test');
if($this->email->send()):
       print_r($appid);
   else:
       print_r($this->email->print_debugger());
      endif;
}

我有错误

smtp connect()失败。https://github.com/phpmailer/phpmailer/wiki/troubleshooting

您没有遵循错误消息中提供的链接,该链接提供了可以用来诊断问题的测试。

这三行不一致:

$config['smtp_host'] = "ssl://email-smtp.eu-west-1.amazonaws.com";
$config['smtp_port'] = "465";
$config['smtp_crypto']  = 'tls';

tls模式将无法在端口465上使用。这应该是ssl。或者,将端口更改为587,它应该是整数,而不是字符串。主机上也不需要ssl://前缀;那只是加剧了混乱。第一步,将它们更改为:

$config['smtp_host'] = 'email-smtp.eu-west-1.amazonaws.com';
$config['smtp_port'] = 465;
$config['smtp_crypto']  = 'ssl';

您可能仍然存在其他问题(例如,您的ISP可能会阻止出站SMTP连接),但是指南中列出了许多其他测试可以帮助您诊断。

最新更新