スレッド表示 | フラット表示〕 全トピック 920 件中 289 番目 次≫ ≪前

subjectが文字化け

created: 2006-01-25 11:58 | modified: 2006-01-30 10:03 | reply: 2

[2874] subjectが文字化け

user: サキ | created: 2006-01-25 11:58
こんにちは。
imap関数を使用してメールを受信するソースを書いたのですが、件名だけが日本語で入力した際に、文字化けして表示されます。
使用環境はPHP5.0.4+Apache2.0.54です。

○mail.body.php
?php
session_start();
if(!$_SESSION["user"] && $_SESSION["pass"]){
header("location: main.php");
}else{
$mailserver = $_SESSION['mailserver'];
$user = $_SESSION["user"];
$pass = $_SESSION["pass"];
$i = $_GET['i'];
}
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
</head>
<body bgcolor="#ffffff">


<?php
/* POP3 サーバと接続 */
$mbox = @imap_open("{" . $mailserver . ":110/pop3}INBOX", "$user", "$pass");
if ($mbox && $i > 0) {
$head = imap_header($mbox, $i);
$body = imap_body($mbox, $i, FT_INTERNAL);
print "-----subject-----<br>";
$subject = mb_decode_mimeheader($head->subject);
echo $subject;
print"<br>-----------------<br>";
?>
<center>
<pre><?php echo mb_convert_encoding($body, mb_internal_encoding(),
mb_detect_encoding($body)); ?></pre>
<br>
<a href="pop3.php">メール一覧へ</a>
<br><br>
<?php
imap_close($mbox);
} else {
/* 認証の失敗 */
print("認証エラー<br>\n");

}
?>

</center>
</body>
</html>

本文は文字化けせず表示されます。
また、subjectもAL-Mailを使用した送信メールの場合は文字化けせず表示されました。
ちなみにphp.iniの「mbstring」のパラメータ部分は「SJIS」に設定済みです。

何かお気づきの点がありましたら、
どなたかアドバイスをお願いいたします。
reply: 2881 返信 編集 削除

[2881] imapでsubjectが文字化け

user: ゆうじ | created: 2006-01-27 00:08
こんばんわ。

$subject だけが化けるというのであれば、
$subject も $body と同じように
mb_convert_encoding してあげるといかがでしょう。
Parent: 2874  reply: 2891 返信 編集 削除

[2891] Re:imapでsubjectが文字化け

user: サキ | created: 2006-01-30 10:03
ゆうじさん回答ありがとうございました。
送信側の文字コードとこちらの文字コードが異なったのが原因だと言うことがわかり修正したら直りました。
ありがとうございました。
Parent: 2881  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 289 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑