首页 > 解决方案 > 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--

标签: phpcodeigniteramazon-web-servicesemailsmtp

解决方案


$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();

推荐阅读