php - 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'] = "\r\n";
$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 连接()失败。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 连接),但指南中列出了许多其他测试可以帮助您诊断。
推荐阅读
- excel - 带有 2 个 x-as 变量和 2 个 y-as 变量的 Excel 图形
- python - 如何为切片的输出信号赋值?
- ideavim - IdeaVim:使 Cmd-A (macOS) 在可视模式下选择所有文本
- wso2 - 部署和运行自定义 siddhi 应用程序
- google-analytics - 每日 GA BigQuery 数据
- java - Android Studio - TextView 检查内容
- java - Kafka心跳线程阻塞
- javascript - 在循环链异步等待之前等待查询api返回
- .net - 未安装指定版本的 .net 时运行 .net 应用程序
- python - 如何创建传递自定义半径的地理热图