我是否可以使用CodeIgniter在本地开发PC上发送SMTP电子邮件,而无需在本地开发PC上安装SMTP服务器应用程序?
例如,以下内容不起作用。
应用/配置/ email.php
$config['mailtype'] = 'html';
$config['protocol'] = 'smtp';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'my_gmail_account@gmail.com';
$config['smtp_pass'] = '*********';
控制器代码
$this->load->library('email');
$this->email->from('my_gmail_account@gmail.com', 'Noel');
$this->email->to('my_gmail_account@gmail.com');
$this->email->subject('SMTP email Test');
$this->email->message('Testing smtp email in codeigniter.');
$this->email->send();
$data['message'] = "Sorry Unable to send email...";
if($this->email->send()){
$data['message'] = "Mail sent...";
}
$this->load->view('test_view', $data);
以下内容返回
抱歉无法发送电子邮件......
并且没有到达目的地电子邮件。
答案 0 :(得分:2)
尝试将参数加载到数组中,然后使用数组source: CodeIgniter Forum初始化库:
$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);
$this->email->set_newline("\r\n");
// Set to, from, message, etc.
$result = $this->email->send();
此外,您可能需要在php.ini
中启用SSL。如果你看到这一行:
;extension=php_openssl.dll
通过从行的开头删除分号来取消注释,然后重新启动PHP。