オブジェクト宛てのメールを受信(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です。
しかし、このサンプルひとつ問題があります。日本語のメールは受信できないみたいなんです。