わたしの

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

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

メルマガ登録の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」でそろえたら、
文字化けは直ったのでした
疲れた

         

Category:その他

わたし歳の記録

わたしの - にほんブログ村

コメント

コメントを残す

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

  

Archive

2026年
2025年
2024年
2023年
2022年
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2010年
2009年
2008年
2007年

Calendar

2026年2月
1234567
891011121314
15161718192021
22232425262728

Search