在没有本地安装smtp服务器的情况下发送smtp邮件

时间:2016-03-07 10:25:19

标签: php codeigniter

我是否可以使用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);

以下内容返回

  

抱歉无法发送电子邮件......

并且没有到达目的地电子邮件。

1 个答案:

答案 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。