- ベストアンサー
sendmailとimodeの絵文字について
はじめまして、CGIからsendmailを使ってimodeにメールを送りたいのですが、絵文字が送信できません。一般的な文字は送れるのですが、imode特有の絵文字は文字化けしてしまいます。 CGIからsendmail経由でimodeに絵文字を送信するにはどのような方法が考えられるのか教えていただけないでしょうか。 ぶしつけで申し訳ありません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ちなみに、No.5 ttkさんが回答されている「&#xxxxx;」の文字実体参照を使った表現は、HTMLのものですので、iモードメールで絵文字に変換されて表示される保証はないと思います。 iモード端末のメール表示画面は、内蔵されているWWWブラウザの機能が流用されているので、その端末のプログラミング次第でHTMLタグや文字実体参照が有効になる可能性があるだけです。 少なくとも、NTTドコモの公式ドキュメントにはiモードメールに文字実体参照が使えるとは書いていないようです。 機種によっては、「&#xxxxx;」がそのまま表示されてしまう可能性を考慮した方が良いと思います。
その他の回答 (5)
- ttk
- ベストアンサー率33% (1/3)
i-modeの絵文字を、 &#から始まる形式にしてメール本文等で使えばJISで送れますよ。 参考URLを参考にしてみてはどうですか?
お礼
ありがとうございます。 その手で一度確認をとってみることにします。 本当に感謝しております。
補足
&#に文字列を変換して送るのも実は試してみました。 私の携帯はso503iですが、&#(絵文字の番号)と表示されるだけで、 肝心の絵文字は出てきませんでした。 ひょっとしたら、NやFなどでは出ているのかもしれません・・・ (確証がないのでなんともいえませんが) 参考URLは私も参考にしております。 お心遣いありがとうございます。
- kazu-kun
- ベストアンサー率31% (72/232)
>sendmail以外でsjisを送れるようなメールプログラム等を利用した場合でも同じような現象が起こるのでしょうか? 同じですよ。簡単に書くと、 i-mode端末 -(1)→ WWWサーバ(CGI) -(2)→ メール送信プログラム(MUA) -(3)→ メール転送プログラム(MTA) -(4)→ i-modeのメールサーバ -(5)→ 相手のi-mode端末 (1),(5)は、SJISで送りますが、(3)~(4)はJISで送らなければならない(と「インターネット」のSMTPの規格で決まっている)のでダメです。 (2)はMUAが対応してれば何でもいいんですが。
補足
ありがとうございます。勉強になりました。 要は絵文字は使うなということになりそうですね・・・ しかしここで疑問があるのですが、出会い系のサイトなんかでは、結構絵文字が普通に送られてきます・・・(これはいわゆる迷惑メールではなく) 何度かやりとりしたことがあるのですが、これはどういう技術をつかってるんでしょうね?
- kazu-kun
- ベストアンサー率31% (72/232)
>送信側も受信側も使用する端末はimodeなのです。 端末は関係ないです。 問題なのは、sendmailとe-mailを中継するネットワークに送る時には文字コードはJISにしなければならず、i-modeの外字はJISでは該当コードがないので表現できないことです。従って送ることは不可能です。 i-mode同士で送れるのは、NTTドコモ内のサーバで通信が完結するため、e-mailの規格を守らずにSJISで扱うように内部で設定しているから送れるだけで、 インターネットを少しでも通らなければならないe-mailでは無理です。
補足
なるほど。 imode自体がSJIS規格外の所に絵文字を割り振っているのはわかっていたのですが、「sendmail自体がjisにしなければならない」ここで文字化けしてるんだろうなと安直に考えていたのです。 それでは、ご無礼を承知でご質問いたしますが、sendmail以外でsjisを送れるようなメールプログラム等を利用した場合でも同じような現象が起こるのでしょうか?活路はsendmail以外のメールプログラムを使うことのような気がしてきました・・・
- kazu-kun
- ベストアンサー率31% (72/232)
不可能です。i-modeの絵文字はNTTドコモが勝手に拡張した外字(機種依存文字)なので、eメールに使うJISコードには該当するコードがないので無理です。
補足
文章が足らなくて申し訳ありません。送信側も受信側も使用する端末はimodeなのです。絵文字を送信すると文字化けしてしまうということは、文字変換が問題なのでしょうか?jcode.plをつかってjis変換あるいはsjis変換(sjis変換はすべての文字が文字化けしましたが)してから送信する方法がネックだと睨んでいるのですが・・・
- quenista
- ベストアンサー率28% (122/425)
実際に試した事は無いので、何とも言えませんが...。 要は、その絵文字の文字コードを送れば可能では無いでしょうか?
補足
文字コードといいますか、送信も受信も使う端末はimodeなのです。 ですから、絵文字のコードはきちんと送っているのです。 結果は文字化けしてしまうということなのです。 やはり技術的に不可能なのでしょうか・・・
お礼
kazu-kunさんはプロのプログラマのようですね・・・ 私のようなにわかプログラマからは尊敬の念がたえません。 本当にありがとうございます。
補足
No.5 ttkさんの方法ですが、少なくとも私の携帯では(so503i)&#xxxxx;とそのままでてきております。 こちらの方法も実は試したのですが、どうやら、絵文字は送れないということになりそうですね・・・ (あるいは、so503iの人だけには事実上送れないというプログラムになりそうな気配がします) so以外のその他の機種でも確かにそのまま表示される可能性がありますので、確認をとらないといけないと思います。 絵文字には本当に悩まされます・・・ ありがとうございました。解決策があれば、ご教授願いたいと思います。