Mail Options #65

Parent #68Owner #36Flags readSource QuestCore.db

Aliases: Mail Options

18 verbs · 23 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
actualthis none thisrxd#655
parse_@mailthis none thisrxd#658
parse_sticky parse_manymsgsthis none thisrxd#6513
parse_replytothis none thisrxd#6512
show_manymsgsthis none thisrxd#656
show_stickythis none thisrxd#656
show_@mailthis none thisrxd#656
show_replytothis none thisrxd#655
showthis none thisrxd#656
check_replytothis none thisrxd#659
show_netmailthis none thisrxd#656
check_netmailthis none thisrxd#6511
show_expirethis none thisrxd#656
parse_expirethis none thisrxd#6527
init_for_corethis none thisrx#659
check_newsthis none thisrxd#655
parse_newsthis none thisrxd#655
show_newsthis none thisrxd#659

Properties

PropertyDefinerFlagsOwnerValue
show_include#65rc#36{"Original message will not be included in replies", "Original message will be included in replies"}
show_all#65rc#36{"Replies will go to original sender only.", "Replies will go to original sender and all previous recipients."}
show_nosubject#65rc#36{"Mail editor will initially require a subject line.", "Mail editor will not initially require a subject line."}
show_expert#65rc#36{"Novice mail user...", "Expert mail user..."}
show_enter#65rc#36{"Mail editor will not start with an implicit `enter' command.", "Mail editor will start with an implicit `enter' command."}
type_manymsgs#65rc#36{0}
type_@mail#65rc#36{2, {2}}
type_replyto#65rc#36{1, {1}}
type_expire#65rc#36{0}
show_followup#65rc#36{"No special reply action for messages with non-player recipients.", "Replies go only to first non-player recipient if any."}
show_resend_forw#65rc#36{"@resend puts player in Resent-By: header", "@resend puts player in From: header (like @forward)"}
choices_rn_order#65rc#36
list of 3{{"read", {".current_message folders are sorted by last read date."}}, {"send", {".current_message folders are sorted by last send date."}}, {"fixed", {".current_message folders are not sorted."}}}
show_no_auto_forward#65rc#36{"@netforward when expiring messages", "do not @netforward messages when expiring mail"}
show_expert_netfwd#65rc#36{"@netforward confirms before emailing messages", "@netforward doesn't confirm before emailing messages"}
show_no_dupcc#65r#36{"i want to read mail to me also sent to lists i read", "don't send me personal copies of mail also sent to lists i read"}
names#68r#36
list of 18{"include", "all", "followup", "nosubject", "expert", "enter", "sticky", "@mail", "manymsgs", "replyto", "netmail", "expire", "resend_forw", "rn_order", "no_auto_forward", "expert_netfwd", "news", "no_dupcc"}
_namelist#68r#36"!include!noinclude!all!sender!nosubject!expert!enter!sticky!@mail!manymsgs!replyto!netmail!expire!followup!resend_forw!rn_order!no_auto_forward!expert_netfwd!news!no_dupcc!"
extras#68r#36{"noinclude", "sender"}
namewidth#68rc#3619
key#1c#36<clear>
aliases#1rc#36{"Mail Options"}
description#1rc#36"Options for mailing"
object_size#1r#36{14234, -1090650497}

Ancestry

Ancestors (nearest first): #68 Generic Option Package#1 Root Class

Children: none

Call graph

calls n65_2 #65:parse_sticky n59_1 #59:toint n65_2->n59_1 n65_3 #65:parse_replyto n20_38 #20:explode n65_3->n20_38 n47_11 #47:parse_recipients n65_3->n47_11 n65_4 #65:show_manymsgs n68_0 #68:get n65_4->n68_0 n65_5 #65:show_sticky n65_5->n68_0 n65_6 #65:show_@mail n65_6->n68_0 n20_5 #20:from_list n65_6->n20_5 n65_7 #65:show_replyto n65_7->n68_0 n46_14 #46:name_list n65_7->n46_14 n65_8 #65:show n68_6 #68:show n65_8->n68_6 n65_9 #65:check_replyto n68_8 #68:istype n65_9->n68_8 n20_15 #20:capitalize n65_9->n20_15 n65_10 #65:show_netmail n65_10->n68_0 n65_11 #65:check_netmail n72_10 #72:email_will_fail n65_11->n72_10 n65_12 #65:show_expire n65_12->n68_0 n43_7 #43:english_time n65_12->n43_7 n65_13 #65:parse_expire n65_13->n59_1 n65_13->n20_38 n43_13 #43:parse_english_time_interval n65_13->n43_13 n65_14 #65:init_for_core n68_5 #68:remove_name n65_14->n68_5 n65_16 #65:parse_news n65_16->n20_5 n65_17 #65:show_news n65_17->n68_0

Source

actual

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if (i = args[1] in {"noinclude", "sender"})
2return {{{"include", "all"}[i], !args[2]}};
3else
4return {args};
5endif

parse_@mail

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1"... we'll take anything...";
2raw = args[2];
3if (raw == 1)
4"...+@mail => @mailo=new";
5return {args[1], "new"};
6else
7return args[1..2];
8endif

parse_sticky parse_manymsgs

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1{oname, raw, data} = args;
2if (typeof(raw) == LIST)
3if (length(raw) > 1)
4return "Too many arguments.";
5endif
6raw = raw[1];
7elseif (typeof(raw) == INT)
8return {oname, raw && ((oname == "manymsgs") ? 20 | 1)};
9endif
10if ((value = $code_utils:toint(raw)) == E_TYPE)
11return tostr("`", raw, "'?  Number expected.");
12endif
13return {oname, value};

parse_replyto

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1{oname, raw, data} = args;
2if (typeof(raw) == STR)
3raw = $string_utils:explode(raw, ",");
4elseif (typeof(raw) == INT)
5return raw ? "You need to give one or more recipients." | {oname, 0};
6endif
7value = $mail_editor:parse_recipients({}, raw);
8if (value)
9return {oname, value};
10else
11return "No valid recipients in list.";
12endif

show_manymsgs

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1value = this:get(@args);
2if (value)
3return {tostr(value), {tostr("Query when asking for ", value, " or more messages.")}};
4else
5return {0, {"Willing to be spammed with arbitrarily many messages/headers"}};
6endif

show_sticky

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1value = this:get(@args);
2if (value)
3return {value, {"Sticky folders:  mail commands default to whatever", "mail collection the previous successful command looked at."}};
4else
5return {0, {"Teflon folders:  mail commands always default to `on me'."}};
6endif

show_@mail

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if (value = this:get(@args))
2return {"", {tostr("Default message sequence for @mail:  ", (typeof(value) == STR) ? value | $string_utils:from_list(value, " "))}};
3else
4default = $mail_agent.("player_default_@mail");
5return {0, {tostr("Default message sequence for @mail:  ", (typeof(default) == STR) ? default | $string_utils:from_list(default, " "))}};
6endif

show_replyto

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if (value = this:get(@args))
2return {"", {tostr("Default Reply-to:  ", $mail_agent:name_list(@value))}};
3else
4return {0, {"No default Reply-to: field"}};
5endif

show

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if (o = (name = args[2]) in {"sender", "noinclude"})
2args[2] = {"all", "include"}[o];
3return {@pass(@args), tostr("(", name, " is a synonym for -", args[2], ")")};
4else
5return pass(@args);
6endif

check_replyto

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1"... must be object, list of objects, or false...";
2value = args[1];
3if (typeof(value) == OBJ)
4return {{value}};
5elseif (!this:istype(value, {{OBJ}}))
6return $string_utils:capitalize("Object or list of objects expected.");
7else
8return {value};
9endif

show_netmail

Spec this none thisFlags rxdOwner #2Definer #65

Referenced by

none

Source

1if (value = this:get(@args))
2return {value, {"Have MOO-mail automatically forwarded to me at", "my registered email-address."}};
3else
4return {value, {"Receive MOO-mail here on the MOO."}};
5endif
6"Last modified Tue Jun  1 02:10:08 1993 EDT by Edison@OpalMOO (#200).";

check_netmail

Spec this none thisFlags rxdOwner #2Definer #65

Referenced by

none

Source

1":check_netmail(value) => Makes sure the email-address is one that can actually be used by $network:sendmail().";
2"The actual value sent is not checked since it can only be a boolean flag.  The player's .email_address property is what is checked.";
3"Possible situations where the address would be unusable are when the address is invalid or we can't connect to the site to send mail.";
4"Returns a string error message if unusable or {value} otherwise.";
5if (caller != this)
6return E_PERM;
7endif
8if (args[1] && (reason = $network:email_will_fail(player.email_address)))
9return tostr("Invalid registered .email_address: ", reason);
10endif
11return args;

show_expire

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1value = this:get(args[1], "expire");
2if (value < 0)
3return {1, {"Messages will not expire."}};
4else
5return {value, {tostr("Unkept messages expire in ", $time_utils:english_time(value || $mail_agent.player_expire_time), value ? "" | " (default)")}};
6endif

parse_expire

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1{oname, value, data} = args;
2if ((typeof(value) == STR) && index(value, " "))
3value = $string_utils:explode(value, " ");
4if (!value)
5return {oname, 0};
6endif
7endif
8if (value == 1)
9return {oname, -1};
10elseif (typeof(value) == LIST)
11if (length(value) > 1)
12nval = $time_utils:parse_english_time_interval(@value);
13if (typeof(nval) == ERR)
14return "Time interval should be of a form like \"30 days, 10 hours and 43 minutes\".";
15else
16return {oname, nval};
17endif
18endif
19value = value[1];
20endif
21if ((nval = $code_utils:toint(value)) || (nval == 0))
22return {oname, (nval < 0) ? -1 | nval};
23elseif (value == "Never")
24return {oname, -1};
25else
26return "Number, time interval (e.g., \"30 days\"), or \"Never\" expected";
27endif

init_for_core

Spec this none thisFlags rxOwner #2Definer #65

Referenced by

none

Source

1if (caller_perms().wizard)
2for x in ({"fast_check", "idle_check", "idle_threshold"})
3this:remove_name(x);
4for y in ({"show", "check", "parse"})
5delete_verb(this, (y + "_") + x);
6delete_property(this, (y + "_") + x);
7endfor
8endfor
9endif

check_news

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if ((what = args[1]) in {"new", "contents", "all"})
2return {what};
3else
4return "Error: `news' option must be one of `new' or `contents' or `all'";
5endif

parse_news

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if (typeof(args[2]) == INT)
2return tostr(strsub(verb, "parse_", ""), " is not a boolean option.");
3else
4return {args[1], (typeof(args[2]) == STR) ? args[2] | $string_utils:from_list(args[2], " ")};
5endif

show_news

Spec this none thisFlags rxdOwner #36Definer #65

Referenced by

none

Source

1if ((value = this:get(@args)) == "all")
2return {value, {"the `news' command will show all news"}};
3elseif (value == "contents")
4return {value, {"the `news' command will show the titles of all articles"}};
5elseif (value == "new")
6return {value, {"the `news' command will show only new news"}};
7else
8return {0, {"the `news' command will show all news"}};
9endif