$string = mb_convert_encoding($title, ”ISO-2022-JP”, ”SJIS”);

$name = ””;
$pos=0;
$split=24; // after 36 single bytes characters, if then comes MB, it is broken
while ( $pos < mb_strlen($string,”ISO-2022-JP”) ) {
$output = mb_strimwidth($string,$pos,$split,””,”ISO-2022-JP”);
$pos += mb_strlen($output,”ISO-2022-JP”);
$name .= mb_encode_mimeheader($output,”ISO-2022-JP”, ”B”, ”¥n”);
}
以上のソースを行うとメール本文の上部に
Content-Type: text/plain; charset=iso-2022-jpと表示されます。どうしたらいいのでしょうか??

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/09/08 18:10:13
  • 終了:--

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/09/08 18:22:08

>どうしたらいいのでしょうか??


という前に どのようにしたいのかが書かれていません。

id:yashio

メール本文の上部に表示される

Content-Type: text/plain; charset=iso-2022-jpを表示されないようにしたいです。

2005/09/08 20:01:00
id:jouno No.2

jouno回答回数280ベストアンサー獲得回数02005/09/08 21:00:06

ポイント50pt

生成されたメールの生ヘッダーを見ると、Content-Typeの行のまえに、余分な改行が入って、改行が二つ連続してしまっている筈です。


原因は、あげられている部分だけからいうと、whileループの最後のループで、mb_encode_mimeheader($output,”ISO-2022-JP”, ”B”, ”¥n”);の返す値が改行だけになっている可能性があります。その場合には、返りが改行だけの場合は無視してnameに足さない処理を書けばいいはずです。そうなっていない場合は、あげられていないソースのどこかのContent-Type: text/plain; charset=iso-2022-jpを文字列として付加している部分の直前の処理で、余分な改行を足しているはずですので、その部分を直してください。

id:yashio

ありがとうございます。

ですがどう書いていいのかわかりません。

出来れば教えてくれませんか?

2005/09/09 22:29:32

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません