gale.org
Home > Documentation > for Users > gsend

Synopsis

gsend [-hapP] [-s subject] [-S address] [-cC category] [-t fragment=value] [address [address ...]]


Description

Transmit a message to one or more users of the Gale messaging system. Command-line arguments specify the destination of the message; standard input contains the message's text itself. If standard input comes from a terminal, line-editing features may be present, and the message is terminated with a single dot on a line by itself (as in "mail"). If standard input is from a file or pipe, it must be terminated by an EOF.

-a
Send (a)nonymously. With this flag, gsend will not sign your message, or include any identifying information (such as your name or location). While locating the source of an anonymous puff is not trivial, be warned that it is not impossible either; various attacks using timing, traffic analysis, and other covert channels can compromise your anonymity.
-c category
Transmit your message to the specified public (c)ategory (or categories). This option is additive and may be used multiple times and/or combined with transmission to a user's address. Since public categories are (by definition) accessible to anyone, the message will not be encrypted if this option is specified.
-C category
(Note the capitalization.) Override the (C)ategory (or categories) used to send this message without altering encryption. This option is idempotent and overrides any other way to specify categories. This is useful in conjunction with the specification of a user's address to encrypt messages broadcast on a "public" category (e.g. for a private group).
-h
Get (h)elp for this command. Outputs a short usage message and exits.
-p
Always request a return recei(p)t. Return receipts are sent by recipients' clients to tell you that the message arrived; they are useful to ensure delivery or to determine who saw the message. Normally, receipts are requested for messages sent "privately" to users, but not for messages sent to public categories. This flag makes sure to request receipts regardless.
-P
(Note the capitalization.) Never request a return recei(p)t (the opposite of "-p", above).
-s subject
Set the message (s)ubject. This field may contain arbitrary text; most clients will display it upon receipt. Unlike the message category, the subject will be encrypted if the rest of the message is. However, the subject cannot be used to filter messages in a subscription list.
-S address
(Note the capitalization.) (S)ign the message with the supplied Gale address; you must hold the private key for that identifier. Normally, messages are signed with the default GALE_ID.
-t fragment=value
This flag directly sets aspects of the internal message structure. To understand this, refer to the section on message structure in the Architecture Guide.
address
Send a message to the specified user. You may specify multiple users and/or combine users with public categories. As long as no public categories are sent, the message will be encrypted, such that only the specified users may decrypt it.

Customization

Gsend's behavior may be customized with several configuration variables: GALE_CONF, GALE_DIR, GALE_DOMAIN, GALE_FROM, GALE_ID, GALE_PROXY, GALE_SYS_DIR.


Examples

gsend friend@somewhere.com
Send a message to a particular user. The message will be encrypted (for their eyes only), and a return receipt will be requested.
gsend -c pub.hello
Send a message to a public category.
gsend -c pub.me.foo blakej@ofb.net
Send a message to a public category as well as a user. Since anyone can read the public category, the message isn't encrypted, but listing the user makes sure they receive it even if they don't subscribe to the public category.
gsend -C group.cabal.fnord cabal@miskatonic.nu
(Note the capitalization.) Send a message to the "group.cabal.fnord" category, but encrypt it with the "cabal@miskatonic.nu" key. Anyone subscribing to that category who doesn't hold that private key will be unable to decrypt the message, but keyholders will see it.
gsend -c pub.toe-suckers:pub.bath.soap
Send a message to two public categories ("pub.toe-suckers" and "pub.bath.soap").
gsend -c pub.toe-suckers -c pub.bath.soap
This is an alternate way to specify multiple categories. It does exactly the same thing as the previous example.

See Also

gsub, Categories