2008年05月03日
llEmailで日本語送信
llEmailで日本語を送る方法について書いてみたコネタです。
LSLでオブジェクトからEmailを送信する場合はllEmailを使います。
しかし、件名(タイトル)と本文にマルチバイト文字列(日本語等)を使うと文字が化けてしまいます。
そこで2ヶ月ほど前にWassr仲間のFakeさんが見つけたPostcard送信時の文字化け対策[URL]を応用してllEmailの文字化け対策をしてみました。
具体的には、以下のように文字列をBase64エンコードして、前後にオマジナイを付加してから件名として送信します。なお本文にはオマジナイは効きません。
default
{
touch_start(integer total_number)
{
string address = "foo@bar.com"; // 送信先アドレス
string text= "件名をここに書きます"; // 送信するマルチバイト文字列
string title = "=?UTF-8?B?" + llStringToBase64(text) + "?=";
string body = "Hello, world!";
llEmail(address,title,body);
}
}
これで件名だけですがマルチバイト文字列を送信することができます。受信はGmailで確認しました。
詳しい技術的な話などについては元ネタのFakeさんのブログLSLSLをどうぞ:
postcard
http://fake.dj/secondlife/txp/article/65/postcard
LSLでオブジェクトからEmailを送信する場合はllEmailを使います。
しかし、件名(タイトル)と本文にマルチバイト文字列(日本語等)を使うと文字が化けてしまいます。
そこで2ヶ月ほど前にWassr仲間のFakeさんが見つけたPostcard送信時の文字化け対策[URL]を応用してllEmailの文字化け対策をしてみました。
具体的には、以下のように文字列をBase64エンコードして、前後にオマジナイを付加してから件名として送信します。なお本文にはオマジナイは効きません。
default
{
touch_start(integer total_number)
{
string address = "foo@bar.com"; // 送信先アドレス
string text= "件名をここに書きます"; // 送信するマルチバイト文字列
string title = "=?UTF-8?B?" + llStringToBase64(text) + "?=";
string body = "Hello, world!";
llEmail(address,title,body);
}
}
これで件名だけですがマルチバイト文字列を送信することができます。受信はGmailで確認しました。
詳しい技術的な話などについては元ネタのFakeさんのブログLSLSLをどうぞ:
postcard
http://fake.dj/secondlife/txp/article/65/postcard
Posted by Keimar at 01:16│Comments(0)
│LSL