Introduction

Rather than using the built-in @mail system, this MUSH uses Talvo’s +Mail and BB system. The system allows you to send messages to players and to Bulletin Boards. There is a learning curve if you’re used to @mail, but we’ve tried to ease the transition as best we can. The +Mail commands are powerful and there are more options for each one than are listed here. Please follow the links to read more about specific commands if you want to know more. Otherwise, this page should cover the basics for day to day usage.

Fast Start

Reading Mail: +skim, +read #
Deleting Mail: +delete #, +clear
Sending Mail: +mail name=subject, +write, +proof, +send
Reading BB Posts: +bbread, +bbread #/#
Posting to a BB: +bbpost #/Title, +write, +proof, +send

Command Quick-Reference

For writing, editing, and sending a message:

+MAIL, +REPLY, +FORWARD, +INCLUDE, +INCLUDES, +WRITE, +PROOF, +ADDRESS, +CC, +SUBJECT, +EDIT, +ERASE, +TOSS, +SEND

For listing, reading, and deleting your messages:

+SKIM, +READ, +UNREAD, +DELETE, +UNDELETE, +CLEAR, +OUTBOX, +UNMAIL

For working specifically with Bulletin Boards:

+BBLIST, +BBSCAN, +BBIGNORE, +BBREAD, +BBCATCHUP

Mail

+Mail: Sending

To start the message, you use the +MAIL command, and type:

+MAIL <address>=<subject>

The <address> can be any combination of Players, Bulletin Boards and Mail Groups. If a player/BB/MG have the same name, you can make sure the right one is used by using PLAYER:<name>, BB:<name> or MG:<name>. For instance:

+MAIL Fred Player:Test MG:Test BB:Public=Hello!

would start a new messages to the players Fred and Test, the BB Public, and everyone in the Mail Group Test, called “Hello!”.

When you’ve started a message, you can write in it by using the +WRITE command. A hypen (-) is the abbreviation for +WRITE, so:

+WRITE Hello everyone!

is the same as

-Hello everyone!

To move to the next line in your message, type ‘%r’. For example:

-Hello everyone!%rI'm testing how to write!%rTalvo

You can write as many times as you like; the new text will be added onto the end of the message. When you’ve finished writing your message, you should check it over and fix any mistakes you see.

When you’ve written your message (or if you want to view what you’ve written so far at any time), you can read it over to see how it will look by typing +PROOF. If you see any mistakes, you should use one of the commands below to fix it, depending on where the mistake is:

  • +EDIT will edit the actual text in your message.
  • +CC and +ADDRESS will edit the list of recipients.
  • +SUBJECT will change the subject of your message.
  • +INCLUDE lets you include the text from another message inside your current message.
  • +ERASE will delete the text from your message, if you want to start over.
  • +UNDO will undo your last change to the message (not the subject/address).

To send your message, use the +SEND command. You can also use two hyphens (–) as an abbreviation for +SEND.

When you send your +mail, all the recipients will receive a message, telling them they have new mail. You will then be told that your message is sent, and given it’s ID number:

[+MAIL] Message sent (#12345).

And that’s it – your message is sent. There are some more complex things you can do, too, which aren’t mentioned in this introduction – read the help-files for the specific +mail commands to find out what they are.

+Mail: Reading

Reading mail is fairly straightforward. Use the +SKIM command to view the messages in your inbox and:

+READ <message ID>

Once you’ve read a message, you can leave it in your inbox or +DELETE it. There’s no limit to the # of messages you can have in your inbox, it’s all about how much you want to spam yourself when you +SKIM.

+Mail: Deleting

Deleting mail is simple. Use the +DELETE command to tag messages for deletion.

+DELETE <message range>

You can +UNDELETE if you change your mind:

+UNDELETE <message range>

To purge your mailbox of deleted messages, just use +CLEAR. (This cannot be undone.)

+Mail: Forwarding

If you need to forward a message, just use +FORWARD:

+FORWARD <message #>

This will start a new message with the original message automatically included. You can compose/edit as needed, just be sure to +SEND when you are finished or the message will not be sent! You can +TOSS to abort the message if you change your mind.

+Mail: Replying

To reply to a message, you can start a new message with +MAIL or use the +REPLY/+REPLYALL commands:

+REPLY <message #>
+REPLYALL <message #>

The original message will not be inserted by default, you’ll need to use +INCLUDE if you want to include it. Once the reply has been started, you can compose/proof/edit as needed, just be sure to +SEND when you are finished or the message will not be sent! You can +TOSS to abort the message if you change your mind.

+Mail: Retractions

You can review sent messages at any time by using +OUTBOX to get the message id and:

+READ/SENT <id>

You can also +UNMAIL a message to retract it before it is read by its recipient(s). When you do this, it will pop you back into edit mode so you can +PROOF/+EDIT the message and send again or +TOSS it.

Messages are periodically purged from the database when they are no longer in anyone’s inbox, posted to a BB or +included somewhere, so they won’t hang around in your outbox forever.

 

Bulletin Boards

BB: Reading

Navigating the BB system uses some of the same commands as the +Mail system, but we’ve made a few (optional) additions to make it feel a little more like Myrddin’s.

To view a list of boards you can read:

+BBLIST
-or-
+BBREAD

To view only boards with unread messages:

+BBSCAN

To view a list of messages on a specific board:

+SKIM bb:<# or name>
-or-
+BBREAD <#>

Tip: To view a list of unread messages on a specific board:

+SKIM bb:<# or name> status=new

To read a message on a board:

+READ bb:<# or name> <message range>
-or-
+BBREAD <board#>/<message range>

BB: Posting

Posting to the BB system uses the same commands as the +Mail system, but we’ve made a few (optional) additions to make it feel a little more like Myrddin’s. To make a post on a BB:

+MAIL <bb>=<title>
-or-
+BBPOST <bb>/<title>

When you’ve started a message, you can write in it by using the +WRITE command. A hypen (-) is the abbreviation for +WRITE, so:

+WRITE Hello everyone!

is the same as

-Hello everyone!

To move to the next line in your message, type ‘%r’. For example:

-Hello everyone!%rI'm testing how to write!%rTalvo

<bb> can be the # or name of the BB. You can write as many times as you like; the new text will be added onto the end of the message. When you’ve written your message (or if you want to view what you’ve written so far at any time), you can read it over to see how it will look by typing +PROOF. If you see any mistakes, you should use one of the commands below to fix it, depending on where the mistake is:

  • +EDIT will edit the actual text in your message.
  • +CC and +ADDRESS will edit the list of recipients. (If you want to send it to players as well as post to the BB)
  • +SUBJECT will change the subject of your message.
  • +INCLUDE lets you include the text from another message inside your current message.
  • +ERASE will delete the text from your message, if you want to start over.
  • +TOSS will trash the bbpost in progress without sending it.
  • +UNDO will undo your last change to the message (not the subject/address).

To send your message, use the +SEND command. You can also use two hyphens (–) as an abbreviation for +SEND.

BB: Retractions

Posts that you make to the BB system can be seen in your +OUTBOX just like mail messages. To retract one, just:

+UNMAIL <id>

Doing this will put the message back in the composer, where you can +TOSS it or make changes if you need to repost. But, surely, you +PROOFed it before you posted it the first time. Right?

Message Ranges

Anywhere a command takes a <message range> as an argument, you can use any combination of the syntaxes below to specify which messages you mean. If no range is given, it defaults to ‘-‘, all messages.

These strings can be used in a message range:

  • A number, which refers to the Nth message in the inbox
  • A range of numbers, in the form X-Y, which refer to all the messages in the inbox between X and Y, inclusive. If X is omitted, it defaults to 1. If Y is omitted, it defaults to the last message in the inbox.
  • The string “author=<player>”, in which case only messages written by <player> are returned.
  • The string “mark=<status>” or “status=<status>”, in which case only messages with that status are returned. For BBs and players, the <status> can be “read” or “new”, or any abbreviation of them. For players, “deleted” (or an abbreviation) is also valid.
  • The string “subject=<subject>”, in which case only messages whose subjects match <subject> are returned. An underscore (_) should be used to represent a space, and the ‘*’ wildcard can be used.
  • The string “date=[<>]<number>”. If a ‘<‘ or ‘>’ is given, only messages written before or after <number> – which is a secs() count – are returned. Otherwise, only messages written at <number> are returned.

Any number of these can be combined, in which case all must be true. For example:

+SKIM mark=read 1-20 author=fred

will +skim only messages which are in the first 20 in your inbox, if Fred wrote them, and they’re marked as read.

Now, just to complicate things a little more, you can |-separate these message ranges, in which case any one will apply. For example:

+SKIM mark=read 1-20 author=fred | author=george subject=*foobar*

will +skim all the messages from before, but it will also include any and all messages from George which have the word ‘foobar’ in the subject.

This allows for some very powerful processing. The main uses, however, are for ‘+READ MARK=NEW’ to read your new messages, or ‘+SKIM AUTHOR=BOB’ if you’re looking for a certain message from the player Bob.

 

Mail Locks

Mail Locks

If you wish to stop somebody from sending you +mail, you just need to set a MAIL @lock on yourself. HELP @LOCK explains how locks work in detail, but here are a couple of brief examples:

This stops everyone from sending you mail:

@lock/mail me=#false

This stops Ben and Fred from mailing you:

@lock/mail me=!=*ben&!=*fred

And this lets only Eve and Karen mail you:

@lock/mail me==*eve|=*karen

You can also set an @mailfailure attribute on yourself, which will be shown to anyone who fails to +mail you because of your mail @lock. See @MAILFAILURE for more information.

 

Mail Evaluation

Mail Evaluation

This information is useful to those who want to spice up their +mail with code. Most people won’t need to worry about this.

By default, +mail messages are evaluated twice: Once when you write the message, and once when you read it. This is done so that code can be placed inside a message. For example, assuming the object #100 is called “Talvo’s Wagon”, and is in a room named “Market Place”, if you use:

+write Visit [name(#100)] at [name(loc(#100))] now!

Your message will read:

Visit Talvo's Wagon at Market Place now!

But what happens if the wagon moves? Your message will still tell people to look for it at it’s old location. So, instead, you could use:

+write Visit [name(#100)] at \[name(loc(#100))] now!

In which case, your message will now say:

Visit Talvo's Wagon at [name(loc(#100))] now!

When someone reads that, it will be evaluated again, and they’ll see:

Visit Talvo's Wagon at Market Place now!

If you then move the wagon into a room called “Main Road”, and re-read the +mail message, you’ll now see:

Visit Talvo's Wagon at Main Road now!

It’s very simple to prevent this extra evaluation, if you want to. To stop your message being evaluated when you write it, simply put a ‘]’ before the command. For example:

]+write Visit [name(#100)] at [name(loc(#100))] now!

To prevent the message being evaluated when you read it, simply use the +READ/EXAMINE command.

Note: If you read a mail message which was written by a player who is no longer on the game (someone who has been purged), the message will not be evaluated again when you read it.

 

Credits

Talvo’s +Mail and BB System was written by Talvo@ElendorMUSH/Mike@M*U*S*H (who can be emailed at mike@keyboardzombie.com). It’s based heavily on the ElendorMUSH +mail system, which was written by Lukthil@ElendorMUSH. The following people made significant contributions to the code:

  • Benigo@ElendorMUSH helped with large portions of the SQL code, made suggestions for additonal functionality, and also provided a MUSH for testing the system on. It wouldn’t have happened without him.
  • Cheetah@M*U*S*H wrote the extremely nifty regexp used by FUN.PARSEARGS, which makes the syntax a lot more natural.
  • Walker@M*U*S*H wrote the regexp code used by +EDIT/REGEXP, greatly improving its power.
  • Many, many bug reports/suggestions came from the folks at Blood of Dragons MUSH (http://www.westeros.org/BoD/).
  • Arsenic@NoReturn made some significant tweaks to the BB portion of the code so that it would be more intuitive and friendly for people who have long used Myrddyn’s BB. (And because Cheyenne just couldn’t get her brain wrapped around using +mail to post to a BB.)

If you would like to contribute anything to this system – bug reports, code fixes, suggestions, etc – please email Talvo (Mike Griffiths), at mike@keyboardzombie.com