0

私はこれに苦労してきました。私が何をしても、CodeIgniter(v 2.1.3)で生成した電子メールメッセージに、新しい行、空の行、または行の戻りを表示できません。

私のコントローラー機能内:

$message = "Line one.\r\n\r\n" .
"Line two.\r\n\r\n" .
"Line three.\r\n\r\n";

$subject = "My Subject Line";

$this->load->library('email');                  
$config['newline'] = "\r\n";  // does not matter when I leave this out
$config['crlf'] = "\r\n";     // does not matter when I leave this out
$this->email->initialize($config);              
$this->email->from('system@mydomain.com', 'my system');
$this->email->to('me@gmail.com');               
$this->email->subject($subject);
$this->email->message($message);                
$this->email->send();               
echo $this->email->print_debugger();

上に示したもの以外は、設定やデフォルトを変更していません。

メッセージの「ソース」は、このprint_debugger()出力のようになります...

User-Agent: CodeIgniter
Date: Sun, 24 Mar 2013 17:46:47 -0400
From: "my system" 
Return-Path: 
Reply-To: "system@mydomain.com" 
X-Sender: system@mydomain.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <xxxxxx@mydomain.com>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_514f74472bd26" 

=?utf-8?Q?My_Subject_Line?=
This is a multi-part message in MIME format.
Your email application may not support this format.

--B_ALT_514f74472bd26
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Line one.

Line two.

Line three.

--B_ALT_514f74472bd26
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Line one.

Line two.

Line three.

--B_ALT_514f74472bd26--

ただし、問題は、実際のメッセージがすべての電子メールクライアントで次のように表示されることです。

Line one.Line two.Line three.

なぜ私"\r\n"は無視されているのですか?

htmlこれは非常に単純なメッセージであり、オプション を使用する必要はありません。CIのドキュメントによると、mailtype設定はデフォルトでになっているはずtextです。

ここでどこが間違っているのですか?

4

2 に答える 2

3

CodeIgniter2のドキュメントが間違っているようです。

このページには、利用可能な設定のリストが含まれています。

これに注意してください、mailtype..。

Preference     Default Value      Options       
mailtype       text               text or html 

次の設定を追加するとこの問題が修正されたため、明らかに「デフォルト値」ではありません...

$config['mailtype'] = 'text';

ドキュメントでこの不一致について尋ねるCIの私のスレッド:

http://ellislab.com/forums/viewthread/234296/


編集

全体の問題は、IonAuth構成ファイル内の次のコードが原因で発生していました...

$config['email_config'] = array(
    'mailtype' => 'html',
);
于 2013-03-24T22:37:18.250 に答える
1

codigniterがあなたのメールをtext/htmlとtext/plainの両方として送信しているようです。ほとんどの電子メールクライアントは、htmlバージョンの電子メールをレンダリングします。htmlでは、空白は1つのスペースに分割されます。codeigniterにhtmlバージョンの送信をオフにするオプションがあるか、またはの<br>代わりに使用するオプションがあるかどうかを確認してください\r\n

于 2013-03-24T22:27:12.957 に答える