Mail Options #59

Parent #62Owner #29Flags readSource hellcore/hellcore.db

Aliases: Mail Options

18 verbs · 30 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
actualthis none thisrxd#595
parse_@mailthis none thisrxd#598
parse_sticky parse_manymsgsthis none thisrxd#5913
parse_replytothis none thisrxd#5912
show_manymsgsthis none thisrxd#596
show_stickythis none thisrxd#596
show_@mailthis none thisrxd#596
show_replytothis none thisrxd#595
showthis none thisrxd#596
check_replytothis none thisrxd#599
show_netmailthis none thisrxd#596
check_netmailthis none thisrxd#5911
show_expirethis none thisrxd#596
parse_expirethis none thisrxd#5927
init_for_corethis none thisrx#599
check_newsthis none thisrxd#595
parse_newsthis none thisrxd#595
show_newsthis none thisrxd#599

Properties

PropertyDefinerFlagsOwnerValue
show_include#59rc#29{"Original message will not be included in replies", "Original message will be included in replies"}
show_all#59rc#29{"Replies will go to original sender only.", "Replies will go to original sender and all previous recipients."}
show_nosubject#59rc#29{"Mail editor will initially require a subject line.", "Mail editor will not initially require a subject line."}
show_expert#59rc#29{"Novice mail user...", "Expert mail user..."}
show_enter#59rc#29{"Mail editor will not start with an implicit `enter' command.", "Mail editor will start with an implicit `enter' command."}
type_manymsgs#59rc#29{0}
type_@mail#59rc#29{2, {2}}
type_replyto#59rc#29{1, {1}}
type_expire#59rc#29{0}
show_followup#59rc#29{"No special reply action for messages with non-player recipients.", "Replies go only to first non-player recipient if any."}
show_resend_forw#59rc#29{"@resend puts player in Resent-By: header", "@resend puts player in From: header (like @forward)"}
choices_rn_order#59rc#29
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#59rc#29{"@netforward when expiring messages", "do not @netforward messages when expiring mail"}
show_expert_netfwd#59rc#29{"@netforward confirms before emailing messages", "@netforward doesn't confirm before emailing messages"}
show_no_dupcc#59r#29{"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"}
testhash#59rc#29
list of 33{18, {"nosubject", 1, "expert_netfwd", 1}, {"@mail", 1}, {"expert", 1, "sticky", 1}, {"enter", 1}, 0, {"replyto", 1}, 0, {"followup", 1, "news", 1}, 0, {"expire", 1}, 0, 0, {"rn_order", 1}, 0, 0, 0, 0, 0, 0, {"all", 1, "resend_forw", 1}, {"no_dupcc", 1}, 0, 0, {"include", 1, "no_auto_forward", 1}, 0, {"netmail", 1}, 0, 0, {"manymsgs", 1}, 0, 0, 0}
names#62r#29
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#62r#29"!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#62r#29{"noinclude", "sender"}
namewidth#62rc#2919
aliases#1rc#29{"Mail Options"}
description#1rc#29"Options for mailing"
object_size#1r#29{13809, 1298433815}
hidden_verbs#1rc#29<clear>
phelp_msg#1rc#29<clear>
weight#1rc#29<clear>
owner_verbs#1rc#29<clear>
plural_name#1rc#29<clear>
client_image#1rc#29<clear>
listening#1rc#29<clear>

Ancestry

Ancestors (nearest first): #62 Generic Option Package#1 root

Children: none

Call graph

calls n59_2 #59:parse_sticky n51_1 #51:toint n59_2->n51_1 n59_3 #59:parse_replyto n20_38 #20:explode n59_3->n20_38 n39_11 #39:parse_recipients n59_3->n39_11 n59_4 #59:show_manymsgs n62_0 #62:get n59_4->n62_0 n59_5 #59:show_sticky n59_5->n62_0 n59_6 #59:show_@mail n59_6->n62_0 n20_5 #20:from_list n59_6->n20_5 n59_7 #59:show_replyto n59_7->n62_0 n38_14 #38:name_list n59_7->n38_14 n59_8 #59:show n62_6 #62:show n59_8->n62_6 n59_9 #59:check_replyto n62_8 #62:istype n59_9->n62_8 n20_15 #20:capitalize n59_9->n20_15 n59_10 #59:show_netmail n59_10->n62_0 n59_11 #59:check_netmail n66_10 #66:email_will_fail n59_11->n66_10 n17_39 #17:get_email_address n59_11->n17_39 n59_12 #59:show_expire n59_12->n62_0 n35_7 #35:english_time n59_12->n35_7 n59_13 #59:parse_expire n59_13->n51_1 n59_13->n20_38 n35_13 #35:parse_english_time_interval n59_13->n35_13 n59_14 #59:init_for_core n62_5 #62:remove_name n59_14->n62_5 n59_16 #59:parse_news n59_16->n20_5 n59_17 #59:show_news n59_17->n62_0

Source

actual

Spec this none thisFlags rxdOwner #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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 #361Definer #59

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 #361Definer #59

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($wiz_utils:get_email_address(player))))
9return tostr("Invalid registered email_address: ", reason);
10endif
11return args;

show_expire

Spec this none thisFlags rxdOwner #29Definer #59

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 #29Definer #59

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 #361Definer #59

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 #29Definer #59

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 #29Definer #59

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 #29Definer #59

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