わたしの

2008年10月8日 水曜日の記録

メルマガ登録のPHPプログラムを前に作ったんだけど、
バグが見つかっちゃった
ソフトバンクでメール文字化け(本文、件名とも)
(メルマガを登録してもらったときに「登録ありがとう」的なメールを送るんだけど、
それが文字化けね)
出たー文字化け
調べて見ると、ヘッダー情報をちゃんと入れないと
正しく送れないって
MIME-Version  1.0
Content-Type    text/plain; charset=”iso-2022-jp”
Content-Transfer-Encoding  7bit
入れてみた▼
文字化け、直らず・・・
やっぱり、文字化けと言ったら
エンコード
メールのエンコードと言ったら「jis」って訳で
mb_language(“japanese”);

mb_internal_encoding(“jis”);

これを書いてみた。
そしたら、本文、件名ともに日本語の部分ってなりました
泣きたくなった。
とあるサイトには、ソフトバンクにはSJISだって書いてあるのを見つけたので、
思い切って本文をSJISにして送ってみた
そうしたら、本文の文字化け直ったー!!!
だけど、
「それだと、他のキャリアで化けるよ」って
どうしたらいいのさー!!!って思ったら、
サンプルプログラムを送ってくれたー!
さらに助言として、メールに関わる、全てのエンコードをJISであわせないと駄目だって!
サンプルプログラムはこちら▼
<php

$main_message = <<< mail_body

TEST
テスト

mail_body;

mb_language(“japanese”);
mb_internal_encoding(“jis”);
$message=mb_convert_encoding($main_message,”jis”,”sjis”);
$subject=mb_convert_encoding(“TEST テスト”,”jis”,”sjis”);

mb_send_mail(“test@test.com” , $subject , $message , “from:
test@test.com”);

echo <<< page
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”ja” lang=”ja”>

<head>
<meta http-equiv=”content-type” content=”text/html;charset=utf-8″ />
<title>TEST TEST</title>
</head>
<body>

TEST OK
テストOK

</body>
</html>
page;

>
ここまでしてもらっといて、
まだ完成しない・・・
プログラムはSJISファイルで、
DBはEUC-JP
どっかで、エンコードがあってない。。。
最終的には
header(“Location:mail.php”);
exit;
で、単独PHPに飛ばして、
そのファイルはSJIS。
後は上記のコードに本文、件名、FROM TOを当てはめて
なんとか文字化けが直った・・・・・。
要するに、
本文・件名・FROM・TO・メールheader情報
全てのエンコードをなんとか「jis」でそろえたら、
文字化けは直ったのでした
疲れた

2008年10月8日

phpでメールを送信するとソフトバンクだけ文字化けする

Category:その他

わたしは当時

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  

Archive

2023年
2022年
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2009年
2008年
2007年

Calendar

2024年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Search