回答編集履歴
3
追記
test
CHANGED
@@ -49,3 +49,33 @@
|
|
49
49
|
あと、奇妙に思うのは、全体的にSJISで文字コードを統一しておられると思います。
|
50
50
|
|
51
51
|
ですので、subjectや本文は文字コードのコンバートがいらないと思います。`mb_send_mail`が勝手に、SJISからISO-2022-JPに変換します。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
さらに追記
|
56
|
+
|
57
|
+
--
|
58
|
+
|
59
|
+
Wikipedia ISO-2022-JP より
|
60
|
+
|
61
|
+
> また、符号化方式名をISO-2022-JPとしているのに、文字集合としてはJIS X 0212(補助漢字)やJIS X 0201の片仮名文字集合(いわゆる半角カナ)をも符号化している例があるが、**ISO-2022-JPではこれらの文字を許容していない。**これらの符号化は独自拡張の実装であり、中にはISO/IEC 2022の仕様に準拠すらしていないものもある。従って受信側の電子メールクライアントがこれらの独自拡張に対応していない場合、その文字あるいはその文字を含む行、時にはテキスト全体が文字化けすることがある。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
となっていますので、mbstringが半角カナをうまくISO-2022-JPにコンバートできなくても、しょうがないような気がします。(mb_send_mailはISO-2022-JPにコンバートします。MS独自拡張ではありません)
|
66
|
+
|
67
|
+
どうしても、半角カナが送れないと嫌だ、という場合は、`ISO-2022-JP-MS`にすべてコンバートした上で、`mail`で送ればいいと思いますよ。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
また、
|
72
|
+
|
73
|
+
```PHP
|
74
|
+
|
75
|
+
$msg = mb_convert_kana($msg, "KV", "SHIFT-JIS");
|
76
|
+
|
77
|
+
```とやって、半角カナから全角カナにコンバートしてやっても化けるとなると、おかしなことですね。
|
78
|
+
|
79
|
+
提供されているコードではそのようにしているところがありませんでした。
|
80
|
+
|
81
|
+
(やろうとしているのは`$header`に対してです。コメントアウトされてますけど)
|
2
追記
test
CHANGED
@@ -43,3 +43,9 @@
|
|
43
43
|
$header = "From: " .mb_encode_mimeheader("テスト", 'ISO-2022-JP-MS') ."<test@xx.dxxx.xx.jp>";
|
44
44
|
|
45
45
|
```としてみてはどうでしょうか?
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
あと、奇妙に思うのは、全体的にSJISで文字コードを統一しておられると思います。
|
50
|
+
|
51
|
+
ですので、subjectや本文は文字コードのコンバートがいらないと思います。`mb_send_mail`が勝手に、SJISからISO-2022-JPに変換します。
|
1
追記
test
CHANGED
@@ -19,3 +19,27 @@
|
|
19
19
|
どういう流れで使っているのか分からないので、何とも言えないです。
|
20
20
|
|
21
21
|
コードを切り出す際は、実際に症状が出ている状態で最小のコードを作っていただくと回答しやすいです。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
追記
|
26
|
+
|
27
|
+
--
|
28
|
+
|
29
|
+
やっぱり実際のコードとは違いましたね。
|
30
|
+
|
31
|
+
```PHP
|
32
|
+
|
33
|
+
$header = "From: " .mb_encode_mimeheader("テスト") ."<test@xx.dxxx.xx.jp>";
|
34
|
+
|
35
|
+
```ここで`mb_encode_mimeheader`に入れている「テスト」が実は半角なんですね?
|
36
|
+
|
37
|
+
`mb_encode_mimeheader`はinternal encodingのSJISでmimeエンコードされてしまいます。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
```PHP
|
42
|
+
|
43
|
+
$header = "From: " .mb_encode_mimeheader("テスト", 'ISO-2022-JP-MS') ."<test@xx.dxxx.xx.jp>";
|
44
|
+
|
45
|
+
```としてみてはどうでしょうか?
|