【发布时间】:2017-04-27 00:28:21
【问题描述】:
我正在尝试使用 CodeIgniter 发送 SMTP 电子邮件,但我收到错误响应...
"遇到以下 SMTP 错误:0 无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。"
User-Agent: CodeIgniter
Date: Tue, 13 Dec 2016 07:06:56 +0000
From: "Blabla" <xxxxxxxxxxxxxx>
Return-Path: <xxxxxxxxxxxxxxxxxxx>
To: xxxxxxxxxxxx
Reply-To: "Explendid Videos" <xxxxxxxxxxxxxxxxxx>
Subject: =?utf-8?Q?=54=68=69=73=20=69=73=20=61=6E=20=65=6D=61=69=6C=20=74=65=73=74?=
X-Sender: bttvsupport@cloudlink.co.in
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <584f9e1023f2f@xxx.co.in>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_584f9e1023f99"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_584f9e1023f99
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
It is working. Great!
--B_ALT_584f9e1023f99
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
It is working. Great!
--B_ALT_584f9e1023f99--
代码是
$ci = get_instance();
$ci->load->library('email');
$config = array();
$config['protocol'] = "smtp";
$config['smtp_host'] = "xxxxx";
$config['smtp_port'] = 25;
$config['smtp_user'] = "xxxxx";
$config['smtp_pass'] = "xxxxx";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$ci->email->initialize($config);
$ci->email->from('xxxxx', 'Blabla');
$list = array('xxxxx');
$ci->email->to($list);
$this->email->reply_to('xxxxx', 'Explendid Videos');
$ci->email->subject('This is an email test');
$ci->email->message('It is working. Great!');
if($ci->email->send()){echo "send";}else{echo "error ";print_r($ci->email->print_debugger());}
【问题讨论】:
-
使用
$this->ci而不是$ci。 -
我会把这个 $this->ci = get_instance();在库的 __construct() 区域中
-
您需要向您的服务提供商咨询您的服务器的 smtp 详细信息。此外,如果您使用 gmail 从您的应用程序发送电子邮件,那么您需要从 gmail-settings 激活 smtp 电子邮件。再说一件事,如果您将应用程序上传到服务器上,则无需使用
smtp协议,而是使用sendmail。 -
您是否加载了电子邮件库?并使用 $this->email->initialize($config);
标签: php codeigniter email smtp