Don't click here unless you want to be banned.

LSL Wiki : LibraryEmailParse

HomePage :: PageIndex :: RecentChanges :: RecentlyCommented :: UserSettings :: You are crawl814.us.archive.org
default {
    state_entry() {
        llEmail((string)llGetKey() + "@lsl.secondlife.com", "Test!", "This (is) a test message.\n This is test message line two."); // Send email to self.
        llSetTimerEvent(2.5); // Poll for emails. (Yes, that is a retarded way on an event-based system!)
    }
    
    timer() {
        llGetNextEmail("", ""); // Check for email with any sender address and subject.
    }
    
    email(string time, string address, string subj, string message, integer num_left) {
        string object_name;
        string region_name;
        float region_corner_x;
        float region_corner_y;
        vector local_position;
        string message_body;
        
        // Parse email to list
        list email_parts = llParseString2List(message,[],["\n"," (",")",", ","Object-Name: ","Region: "]);
        list format_parts = ["Object-Name: ","x","\n","Region: ","x"," (","X",", ","X",")","\n","Local-Position:"," (","X",", ","X",", ","X",")","\n","\n"];
        // Determine if email is properly formatted.
        integer error = FALSE;
        if (llGetListLength(email_parts)>20) {
            integer n;
            for (n=0;n<21;n++) {
                string f = llList2String(format_parts,n);
                string e = llList2String(email_parts,n);
                if ((f!="x")&&(f!="X")) {
                    if (f!=e) error = TRUE;
                }
            }
        }
        else {
            error = TRUE;
        }
                   
        if (error) {
            object_name = "unknown";
            region_name = "unknown";
            region_corner_x = -1.0;
            region_corner_y = -1.0;
            local_position = ZERO_VECTOR; 
            message_body = message;
        }
        else {
            object_name = llList2String(email_parts,1);
            region_name = llList2String(email_parts,4);
            region_corner_x = (float)llList2String(email_parts,6);
            region_corner_y = (float)llList2String(email_parts,8);
            local_position = <(float)llList2String(email_parts,13),
                                (float)llList2String(email_parts,15),
                                (float)llList2String(email_parts,17)>;
            message_body = llDumpList2String(llDeleteSubList(email_parts, 0, 20),"");
        }
        
        llSay(0, "You got mail! " + (string)num_left + " more mails.");
        llSay(0, "Unix Time: " + (string)time);
        llSay(0, "Address: " + (string)address);
        llSay(0, "Subject: " + (string)subj);
        llSay(0, "Object_Name: "+(string)object_name);
        llSay(0, "Region_Name: "+(string)region_name);
        llSay(0, "Region_Corner_x: "+(string)region_corner_x);
        llSay(0, "Region_Corner_y: "+(string)region_corner_y);
        llSay(0, "Local_Position: "+(string)local_position);
        llSay(0, "Message_Body: "+(string)message_body);
    }
}
Comments [Hide comments/form]
Very nice! :D! I could use this for somthing... Actually Ill do that right now!
-- CometAero (2006-12-11 22:09:14)
Attach a comment to this page: