2011-10-18 15 views
1

私は電子メールの奇妙な感嘆符の問題に直面しています。そのために、私はbase64エンコードで別々のメールを使ってテストしました。それはうまく動作します。私はこのようなヘッダーを設定しました。CodeIgniterでbase64エンコードで電子メールを送信するには?

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers .= "Content-Transfer-Encoding:base64" . "\r\n"; 
// More headers 
$headers .= 'From:'.$from. "\r\n"; 
$htmlcode = rtrim(chunk_split(base64_encode($msg))); 
$ret=mail($to,$subj,$htmlcode,$headers); 

ここで、CodeIgniterで同じヘッダーオプションを設定します。私は設定でオプションを試しました。

$_configure['_encoding']="base64"; 
$email= new Email($config);  

しかし、動作しません。上記のようなヘッダをCodeIgniterでどのように設定できますか?

編集:

現在のCodeIgniterのEmailクラスのみを使用しました。

+0

エラーは何ですか? – Mob

+0

@Mob私は暗号化されたメールを手に入れました。しかし前のものについては、私が入力したもので電子メールを受け取ります。 – svk

+1

CodeIgniter [Email Class](http://codeigniter.com/user_guide/libraries/email.html)を使ってみませんか? – user973254

答えて

0

これを追加するには、電子メールクラスを拡張する必要があります。これはかなり簡単です。

この場合、_set_headerにパブリック関数を追加すると、電子メールヘッダーが生成されます。テストされていない

が、このような何か:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Email extends CI_Email { 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function set_header($header, $value) { 
     parent::_set_header($header, $value); 
    } 
} 

その後、電子メールのコードで、の効果に何か:

SET_HEADER( '_エンコーディング'、 'base64' の);

3
$config['_bit_depths'] = array('7bit', '8bit', 'base64'); 
$config['_encoding'] = 'base64';