php - CodeIgniter 中的 AWS SMTP 邮件错误(无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。)
问题描述
我正在尝试使用 AWS SMTP 发送电子邮件
auth 访问已通过,并配置了所有内容,但仍然从 CI 收到错误
$this->load->library("email");
$config['mailtype'] = 'html';
$config['useragent'] = 'ses-smtp-user.20160628-105419'; //origon
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'email-smtp.us-west-2.amazonaws.com'; //origon
$config['smtp_user'] = 'user key ';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '465';
$config['charset'] = 'utf-8';
$config['crlf'] = "\r\n"; //should be "\r\n"
$config['newline'] = "\r\n"; //should be "\r\n"
$config['wordwrap'] = TRUE;
$config['smtp_crypto'] = 'tls'; // TLS protocol
$config['email_newline'] = "\r\n"; // SES hangs with just \n
$this->email->initialize($config);
$this->email->from("email addr",'name');
$this->email->to("mail to");
$this->email->subject("test email");
$this->email->message("test!"); //메세지
$status = $this->email->send();
if($status) echo "IT WORKED!";
print_r($this->email->print_debugger());
我不确定将“useragent”值“CodeIgniter”更改为“ses-smtp-user.20160628-105419”
并在运行此代码时使用 print_debugger() 得到以下错误
hello:
The following SMTP error was encountered:
starttls:
The following SMTP error was encountered:
The following SMTP error was encountered:
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
Date: Wed, 20 Jun 2018 02:23:28 +0000
From: =?UTF-8?Q?=EB=B3=84=EB=AA=85?= <email>
Return-Path: <email>
To: mailto
Subject: =?UTF-8?Q?aws=20mail=20test=20mail=20f?==?UTF-8?Q?orm=20ori?= =?UTF-8?Q?gon!=20=20!?=
Reply-To: <email>
User-Agent: ses-smtp-user.20160628-105419
X-Sender: email
X-Mailer: ses-smtp-user.20160628-105419
X-Priority: 3 (Normal)
Message-ID: <email>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_5b29baa048f13"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_5b29baa048f13
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
test!
--B_ALT_5b29baa048f13
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
test=21
--B_ALT_5b29baa048f13--
解决方案
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'xxx',
'smtp_pass' => 'xxx',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$this->load->library('email', $config);
// set new line
$this->email->set_newline("\r\n");
//set to, from, message body, etc.
$result = $this->email->send();
推荐阅读
- c# - 如何在一个表单中一键提交多个部分表单?
- visual-studio-2013 - Visual Studio Express 2013 和 Visual Studio 2013 之间的区别
- sql - 如何提高 SQL Server 中以下查询的性能?
- jquery - 从用户的本地系统获取文件的属性(最后修改日期)
- kubernetes - 在 Kubernetes 上调试 colissionCount
- php - 验证失败后如何启用提交按钮控制器-Laravel
- python - rpy2:如何正确地将 NaN 从 panda.DataFrame 转换为 NA 到 R?
- c# - GroupBy 项不相等
- java - 使用流图java 8转换另一个列表
- ios - 流式传输视频通话时无法设置正确的视图