はじめまして、CGIからsendmailを使ってimodeにメールを送りたいのですが、絵文字が送信できません。一般的な文字は送れるのですが、imode特有の絵文字は文字化けしてしまいます。
CGIからsendmail経由でimodeに絵文字を送信するにはどのような方法が考えられるのか教えていただけないでしょうか。
ぶしつけで申し訳ありません。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

ちなみに、No.5 ttkさんが回答されている「&#xxxxx;」の文字実体参照を使った表現は、HTMLのものですので、iモードメールで絵文字に変換されて表示される保証はないと思います。


iモード端末のメール表示画面は、内蔵されているWWWブラウザの機能が流用されているので、その端末のプログラミング次第でHTMLタグや文字実体参照が有効になる可能性があるだけです。
少なくとも、NTTドコモの公式ドキュメントにはiモードメールに文字実体参照が使えるとは書いていないようです。
機種によっては、「&#xxxxx;」がそのまま表示されてしまう可能性を考慮した方が良いと思います。

この回答への補足

No.5 ttkさんの方法ですが、少なくとも私の携帯では(so503i)&#xxxxx;とそのままでてきております。
こちらの方法も実は試したのですが、どうやら、絵文字は送れないということになりそうですね・・・
(あるいは、so503iの人だけには事実上送れないというプログラムになりそうな気配がします)

so以外のその他の機種でも確かにそのまま表示される可能性がありますので、確認をとらないといけないと思います。

絵文字には本当に悩まされます・・・
ありがとうございました。解決策があれば、ご教授願いたいと思います。

補足日時:2001/12/28 22:11
    • good
    • 0
この回答へのお礼

kazu-kunさんはプロのプログラマのようですね・・・
私のようなにわかプログラマからは尊敬の念がたえません。
本当にありがとうございます。

お礼日時:2001/12/28 22:16

i-modeの絵文字を、


&#から始まる形式にしてメール本文等で使えばJISで送れますよ。

参考URLを参考にしてみてはどうですか?

参考URL:http://specters.net/cgipon/labo/it_emoji.html

この回答への補足

&#に文字列を変換して送るのも実は試してみました。
私の携帯はso503iですが、&#(絵文字の番号)と表示されるだけで、
肝心の絵文字は出てきませんでした。
ひょっとしたら、NやFなどでは出ているのかもしれません・・・
(確証がないのでなんともいえませんが)

参考URLは私も参考にしております。
お心遣いありがとうございます。

補足日時:2001/12/28 22:06
    • good
    • 0
この回答へのお礼

ありがとうございます。
その手で一度確認をとってみることにします。
本当に感謝しております。

お礼日時:2001/12/28 22:17

>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が対応してれば何でもいいんですが。

この回答への補足

ありがとうございます。勉強になりました。
要は絵文字は使うなということになりそうですね・・・

しかしここで疑問があるのですが、出会い系のサイトなんかでは、結構絵文字が普通に送られてきます・・・(これはいわゆる迷惑メールではなく)

何度かやりとりしたことがあるのですが、これはどういう技術をつかってるんでしょうね?

補足日時:2001/12/26 18:01
    • good
    • 0

>送信側も受信側も使用する端末はimodeなのです。



端末は関係ないです。
問題なのは、sendmailとe-mailを中継するネットワークに送る時には文字コードはJISにしなければならず、i-modeの外字はJISでは該当コードがないので表現できないことです。従って送ることは不可能です。

i-mode同士で送れるのは、NTTドコモ内のサーバで通信が完結するため、e-mailの規格を守らずにSJISで扱うように内部で設定しているから送れるだけで、
インターネットを少しでも通らなければならないe-mailでは無理です。

この回答への補足

なるほど。
imode自体がSJIS規格外の所に絵文字を割り振っているのはわかっていたのですが、「sendmail自体がjisにしなければならない」ここで文字化けしてるんだろうなと安直に考えていたのです。
それでは、ご無礼を承知でご質問いたしますが、sendmail以外でsjisを送れるようなメールプログラム等を利用した場合でも同じような現象が起こるのでしょうか?活路はsendmail以外のメールプログラムを使うことのような気がしてきました・・・

補足日時:2001/12/25 17:57
    • good
    • 0

不可能です。

i-modeの絵文字はNTTドコモが勝手に拡張した外字(機種依存文字)なので、eメールに使うJISコードには該当するコードがないので無理です。

この回答への補足

文章が足らなくて申し訳ありません。送信側も受信側も使用する端末はimodeなのです。絵文字を送信すると文字化けしてしまうということは、文字変換が問題なのでしょうか?jcode.plをつかってjis変換あるいはsjis変換(sjis変換はすべての文字が文字化けしましたが)してから送信する方法がネックだと睨んでいるのですが・・・

補足日時:2001/12/25 14:38
    • good
    • 0

実際に試した事は無いので、何とも言えませんが...。



要は、その絵文字の文字コードを送れば可能では無いでしょうか?

この回答への補足

文字コードといいますか、送信も受信も使う端末はimodeなのです。
ですから、絵文字のコードはきちんと送っているのです。
結果は文字化けしてしまうということなのです。
やはり技術的に不可能なのでしょうか・・・

補足日時:2001/12/25 14:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qsendmailで送信の時に文字化け

皆さんお世話になります
sendmailを使用してメール送信しています
送信はちゃんと出来て、WEB上のメールで見る限り
問題は無いのですが、アウトルックエクスプレスで
受信すると文字化けしてしまいます。

#// メール送信
# print MAIL $mlms;
#
require './jcode.pl';
jcode'convert(*mlsb, "jis");
jcode'convert(*mail_msg, 'jis');
$mlhd = "From: $mlfr" . "\n" . "To: $mlto" . "\n" . "Subject: $mlsb" . "\n\n";
# Err check
$err = 1;
if ($mlms cmp "" && $mlfr cmp ""){$err = 0}

open(MAIL, "| $mailer -t") or $err = 1;
if ($err == 0) {
print MAIL $mlhd;
print MAIL "\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL 'Content-Type: text/plain; charset=iso-2022-jp' . "\n\n";
print MAIL $mail_msg;
print MAIL "\n\n" . "." . "\n";
close(MAIL);

プロバイダはwakwakです
何か足りない物があるような気がします
よろしくご指導お願いします。

皆さんお世話になります
sendmailを使用してメール送信しています
送信はちゃんと出来て、WEB上のメールで見る限り
問題は無いのですが、アウトルックエクスプレスで
受信すると文字化けしてしまいます。

#// メール送信
# print MAIL $mlms;
#
require './jcode.pl';
jcode'convert(*mlsb, "jis");
jcode'convert(*mail_msg, 'jis');
$mlhd = "From: $mlfr" . "\n" . "To: $mlto" . "\n" . "Subject: $mlsb" . "\n\n";
# Err check
$err = 1;
if ($mlms cmp "" && $mlfr cmp "")...続きを読む

Aベストアンサー

はじめまして、こんばんわ。


どこが文字化けしますか?(From/To/Subject/Body)
また、化けるのは日本語だけでしょうか?
MIMEエンコードはしてありますよね?
http://www.info-club.net/Usagi/memomemo/base64.html
http://homepage1.nifty.com/glass/tom_neko/web/web_03.html

補足をお願いします。


それでは。

Qimode用の郵便番号検索CGI

i-modeHPで郵便番号を入力すると自動的に住所がでてくる
CGIを探しています。フリー・シェアどちらでもかまいませんので
ご存知の方教えて下さい。よろしくお願いします。

Aベストアンサー

こんにちは。

>i-modeHPで郵便番号を入力すると自動的に住所がでてくるCGI

とのことですが、この機能は膨大なデータベースを要するので、CGIだけではどうにもならないかと、、、
「そういう機能のあるサイト」ではだめでしょうか?

参考までに、URLを載せておきますね。

参考URL:http://www.pleasuresky.co.jp/hi/tools/zip/

QCGIでオリジナル絵文字作れますか?

CGIでチャットサーバと作った場合
絵文字を自作してチャットできるようにすることは
可能でしょうか?

Aベストアンサー

アイコン画像として事前に絵文字的なものを用意してから、
チャット文字中にimg srcタグでその画像を挿入するように、CGIを作れば可能です。

Qmail送信CGIの返信後のページの文字化け

 フォームからメールを送信するCGIで
送信したあとの、お知らせページが文字化けしてしまいます。どう書いたらいいでしょうか?教えてください。
こんな感じのソースです。。
$header = <<END_OF_DATA;
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>メール送信結果</title>
</head>
<body>
<h1>メール送信結果</h1>
<hr>
<p>御意見、御予約ありがとうございました。</p>
<hr>
END_OF_DATA

 「御意見、御予約ありがとうございました。」というところの、ご予約が文字化けしてしまいます。どのように書いたらいいでしょうか?
 ちなみに私はCGI初心者で、これは指示通りに設定しただけなので、分かりやすく教えていただけると嬉しいです。
お願いします<m(__)m>

Aベストアンサー

メタ文字が含まれてるので文字化けしてます。
予約の間に \ を入れれば文字化けしなくなると思います

『御予約』を『御予\約』に変更

Qcgi(perl) sendmailの使い方

お手数ですがよろしくお願い致します。

レンタルサーバー(ロリポップ)にCGIを設置してサイトを作成しています。
メールフォームを作ってフォームから指定されたメールアドレスに自動返信するようにしたいのですが、うまく動作しなくて困っています。

利用環境は
Perl(ver.5.8.8)でsendmailについては以下のようになっています。
・SENDMAIL の利用は可能です。 postfixによるラッパーとなります。
・sendmailのパスは/usr/lib/sendmail もしくは/usr/sbin/sendmail どちらでも利用可。

現在メールを送るところまでは出来るようになったのですが、届くメールを見ると宛先などのアドレスに余計なドメインが付加されているのです。

テスト中のcgiは大体以下のような感じです。

my $from = 'foo01\@bar.jp';
my $to = 'foo02\@bar.jp';
my $subject = 'test';
my $msg = 'test';

open(SDML,"| $sendmail -t -i") || die;
print SDML "From: $from\n";
print SDML "To: $to\n";
print SDML "Cc: $cc\n";
print SDML "Subject: $subject\n";
print SDML "Content-Transfer-Encoding: 7bit\n";
print SDML "Content-Type: text/plain;\n\n";
print SDML "$msg";
close(SDML);

これで送られてくるメールを見ると
宛先: "foo02@bar.jp"@usersXXX.phy.lolipop.jp (XXXは本当は数字。usersXXXはロリポップのサーバー番号というものらしいです。)
こんな風に余計なドメインがくっついて送られてきます。

print SDML "To: $to\n"; → print SDML "To: foo02\@bar.jp\n";
という感じで直書きに直すとこの症状は起こらないのですが、変数で指定するとどうしても起こります。

自動返信するため宛先に変数を使いたいのですがどうしたらこの症状が出ないように出来るのでしょうか?

お手数ですがよろしくお願い致します。

レンタルサーバー(ロリポップ)にCGIを設置してサイトを作成しています。
メールフォームを作ってフォームから指定されたメールアドレスに自動返信するようにしたいのですが、うまく動作しなくて困っています。

利用環境は
Perl(ver.5.8.8)でsendmailについては以下のようになっています。
・SENDMAIL の利用は可能です。 postfixによるラッパーとなります。
・sendmailのパスは/usr/lib/sendmail もしくは/usr/sbin/sendmail どちらでも利用可。

現在メールを送るとこ...続きを読む

Aベストアンサー

これは、postfixの正しい挙動だと思います。 それは、
$to の定義において、 @の前に \ を置いてエスケープしているのにシングルクォートで括っているから、postfixは 「foo02\@bar.jp」をローカルパートと判断し、「@サーバー名」 を付加しているのでしょう。


このカテゴリの人気Q&Aランキング

おすすめ情報