3

今日は、CodeIgniter の email クラスを試してみました。config/email.phpドキュメントに従って、メールの $config を保存しました。そして、通常どおりメールクラスを使用します。これは次のようなものですか:

config/email.php:

<?php
    $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => 465,
        'smtp_user' => '******',
        'smtp_pass' => '******',
        'mailtype'  => 'html',
        'charset'   => 'iso-8859-1'
    );
?> 


一部のコントローラー:

public function sendMessage(){
    $this->load->library('email');
    $this->email->set_newline("\r\n");
    $this->email->from('me@here.comk', 'My Name');
    $this->email->to("someone@somewhere.com");
    $this->email->subject('A test email from CodeIgniter using Gmail');
    $this->email->message("A test email from CodeIgniter using Gmail");
    $this->email->send();
}

このセットアップでは、すべて正常に動作しますが、設定を変更したい場合はどうすればよいですか? たとえば、Web サイトの一部で別のアカウントからメールを送信したい場合:フィールドsmtp_usersmtp_passフィールドを変更できるようにする必要があります。どうすればいいですか?新しい構成配列全体を書き直すことは避けたいです。

4

2 に答える 2

2

配列に構成を作成し、コントローラに電子メール ライブラリをロードするときに配列を追加します

     $email_config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => 465,
        'smtp_user' => '******',
        'smtp_pass' => '******',
        'mailtype'  => 'html',
        'charset'   => 'iso-8859-1'
    );

    $this->load->library('email', $email_config);

    $this->email->set_newline("\r\n");
    $this->email->from('me@here.comk', 'My Name');
    $this->email->to("someone@somewhere.com");
    $this->email->subject('A test email from CodeIgniter using Gmail');
    $this->email->message("A test email from CodeIgniter using Gmail");
    $this->email->send();

設定を変更したい場合は、上記を実行して、各パラメーターの値を、POST 経由またはコントローラーに渡される方法で設定します。

私が投稿した後に最初に質問を編集したのか、それとも見逃しただけなのかはわかりませんが、「新しい構成配列全体を書き換えるのを避けたい」というメッセージが表示されるようになりました。私は他の方法を知りません。

于 2013-07-30T13:52:17.790 に答える