永久更改 Codeigniter 配置变量

Change Codeigniter config variable permanently

我的配置变量有问题,我正在使用 PHPMailer 通过 smtp 发送电子邮件,所以我必须根据我的帐户信息更改配置变量。

$config['smtp_host']        = 'smtp.ipage.com';
$config['smtp_user']        = 'my_email@my_domain.com';
$config['smtp_pass']        = 'my_password';

我的帐户信息存储在数据库中,所以当我将这些信息放入 email.php 配置文件时。脚本工作正常,但是当我从 Controller 更改脚本时,脚本不起作用。

$this->config->load('email');
$this->config->set_item('smtp_user', $from); // $from $pass $host comes from db
$this->config->set_item('smtp_pass', $pass);
$this->config->set_item('smtp_host', $host);
$this->load->library('email');

当我从配置文件中删除变量并回显 $this->config 数组时,变量被更改(从控制器),但是当我想发送电子邮件时它没有发送。就像变量在几秒钟后丢失,如果变量在配置文件中,则发送电子邮件。
所以,我想长期改变那些变量。

完全按照documentation告诉你的去做。首先删除任何 config/email.php 文件。在控制器的操作中执行以下操作:

$this->load->library('email');
$config['smtp_user'] = $from; // $from $pass $host comes from db
$config['smtp_pass'] = $pass;
$config['smtp_host'] = $host;
$config['protocol']= 'smtp';
$this->email->initialize($config);

$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com'); 
$this->email->cc('another@another-example.com'); 
$this->email->bcc('them@their-example.com'); 

$this->email->subject('Email Test');
$this->email->message('Testing the email class.');  

$this->email->send();