我想在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连接),但是指南中列出了许多其他测试可以帮助您诊断。