わたしの

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

2008年10月の記録

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

わたし21歳 長女誕生まで288日 長男誕生まで1103日 次女誕生まで2304日 の記録。

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

コメントを残す

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

Archive

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

Calendar

2026年6月
 123456
78910111213
14151617181920
21222324252627
282930  

Search