LSL(Linden Script Language)スクリプトTips集

オブジェクト宛てのメールを受信(llGetNextEmail関数)

セカンドライフのオブジェクトはUUID@lsl.secondlife.com
というメールアドレスを持っています。(UUIDにはオブジェクトのKeyを指定してください。)
Touchするとメールを受信するサンプルを作成しました。
下記スクリプトを使います。


default
{
  state_entry()
  {
       llSetText((string)llGetKey() + "@lsl.secondlife.com",<1.0,0.0,0.0>,1.0);
  }
  touch_start(integer total_number)
  {
      llGetNextEmail("", "");
  }
  email(string time, string address, string subj, string message, integer num_left)
  {
      llSay(0, llList2CSV([time, address, subj, message]));
      if (num_left != 0) {
          llGetNextEmail("", "");
      }
  }

}
llGetNextEmail関数:llGetNextEmail(string address, string subject)
オブジェクトに届いたメールを受信します。
一番目のパラメータ :フィルタするメールアドレス(フィルタしない場合は空文字)
二番目のパラメータ :フィルタする件名(フィルタしない場合は空文字)
llList2CSV関数:llList2CSV(list src)
一番目のパラメータ : ここでリストをカンマ区切りの文字列にします。
emailイベント: email(string time, string address, string subj, string message, integer num_left)
オブジェクトに届いたメールを受信したときに発生します。
一番目のパラメータ :受信時間
二番目のパラメータ :送信元アドレス
三番目のパラメータ :件名
四番目のパラメータ :本文
五番目のパラメータ :受信してないメールの残数(llGetNextEmail関数はメール1つしか読み出せないので、残数が0でない場合はllGetNextEmailを繰り返し呼んでいます。)

自身が作成したオブジェクトの上に表示されたメールアドレスへメールを送って試してください。
メールを送信するのは、OutlookとかYahooメールとか何のメーラーでもOKです。

しかし、このサンプルひとつ問題があります。日本語のメールは受信できないみたいなんです。