Difference between revisions of "Mu"

From Mailutils
Jump to navigationJump to search
(Change to a redirect link)
 
(59 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Note|This article is not yet finished}}
+
#REDIRECT [[Mailutils_(utility)]]
<tt>Mu</tt> is a multi-purpose tool shipped with Mailutils.  It can be used for various mail- and database-related tasks, as well as an auxiliary tool for compiling and linking programs with Mailutils.
 
 
 
== Syntax ==
 
 
 
<tt>Mu</tt> is a command line tool.  Its invocation syntax is:
 
 
 
<code>
 
mu [''options''] ''command'' [''args'']
 
</code>
 
 
 
where ''options'' are options that affect the behavior of <tt>mu</tt> as a whole, ''command'' instructs it what it is to do and ''args'' are any arguments the ''command'' needs in order to be executed.
 
 
 
The commands are:
 
 
 
;2047
 
:Decodes or encodes email message headers.
 
;acl
 
:Tests Mailutils access control lists;
 
;cflags
 
:Shows compiler options needed to compile with Mailutils.
 
;dbm
 
:Invokes a DBM management tool.
 
;filter
 
:Applies a chain of filters to the input.
 
;help
 
:Displays a terse help summary.
 
;imap
 
:Invokes an IMAP4 client shell (in development).
 
;info
 
:Displays information about Mailutils compile-time configuration.
 
;ldflags
 
:Constructs a [http://www.manpagez.com/man/1/ld ld](1) command line for linking a program with Mailutils.
 
;logger
 
:Logs information using Mailutils log facility.
 
;pop
 
:Invokes a POP3 client shell.
 
;query
 
:Queries configuration values.
 
;wicket
 
Scans [[wicket]]s for matching URLs
 
 
 
== help ==
 
The <tt>mu help</tt> command lists all available options and command names along with short descriptions of what each of them does.  It is similar to the <tt>mu --help</tt> option.
 
 
 
A command name can be supplied as an argument to <tt>help</tt>, in which case it will display a help page for that particular command, e.g.:
 
 
 
  mu help ldflags
 
 
 
will output help for the [[#ldflags|ldflags]] command.  It is synonymous to the <tt>--help</tt> option used with that particular command, e.g.: <tt>mu ldflags --help</tt>.
 
 
 
== info ==
 
The <tt>mu info</tt> command displays information about Mailutils compile-time configuration.  In normal form its output lists a single configuration flag per line, e.g.:
 
 
 
  $ mu info
 
  VERSION=2.99.93
 
  SYSCONFDIR=/etc
 
  MAILSPOOLDIR=/var/mail/
 
  SCHEME=mbox
 
  LOG_FACILITY=mail
 
  IPV6
 
  USE_LIBPAM
 
  HAVE_LIBLTDL
 
  WITH_GDBM
 
  WITH_GNUTLS
 
  WITH_GSASL
 
  ...
 
 
 
A configuration flag can consist either of a single word, indicating that a particular capability has been enabled at compile time, or of a keyword/value pair delimited by an equal sign, which indicates a particular value used by default for that feature. For example, <tt>IPV6</tt> means that Mailutils was compiled with support for IPv6, whereas <tt>SYSCONFDIR=/etc</tt> means that the default place for configuration files is in <tt>/etc</tt> directory.
 
 
 
Such short output is convenient for using <tt>mu info</tt> in scripts to decide whether it is possible to use a given feature.  To assist human users, the <tt>--verbose</tt> (<tt>-v</tt>) option is provided.  It prints a short description next to each flag:
 
 
 
  $ mu info --verbose
 
  VERSION=2.99.93          - Version of this package
 
  SYSCONFDIR=/etc          - System configuration directory
 
  MAILSPOOLDIR=/var/mail/  - Default mail spool directory
 
  SCHEME=mbox              - Default mailbox type
 
  LOG_FACILITY=mail        - Default syslog facility
 
  IPV6                      - IPv6 support
 
  USE_LIBPAM                - PAM support
 
  HAVE_LIBLTDL              - a portable `dlopen' wrapper library
 
  WITH_GDBM                - GNU DBM
 
  WITH_GNUTLS              - TLS support using GNU TLS
 
  WITH_GSASL                - SASL support using GNU SASL
 
  ...
 
 
== cflags ==
 
The <tt>mu cflags</tt> command shows compiler options needed to compile a C source with Mailutils.  It is intended for use in configuration scripts and Makefiles, e.g.:
 
 
 
  CFLAGS=-g -O2 `mu cflags`
 
 
 
== ldflags ==
 
The <tt>mu ldflag</tt> command is a counterpart of <tt>cflags</tt> used for linking.  It constructs a [http://www.manpagez.com/man/1/ld ld](1) command line for linking a program with Mailutils.
 
 
 
When used without arguments, it outputs <tt>ld</tt> arguments which would link only with the core Mailutils library [[libmailutils]]:
 
 
 
  $ mu ldflags
 
  -L/usr/local/lib -lmailutils
 
 
 
This command accepts a number of keywords which allow to select a particular subset of Mailutils libraries to link with.  In particular, the argument <tt>all</tt> instructs it to link in all available libraries:
 
 
 
  $ mu ldflags all
 
  -L/usr/local/lib -lmu_mbox -lmu_mh -lmu_maildir -lmu_imap -lmu_pop \
 
  -lmu_mailer -lmu_compat -lmailutils -lmu_auth -lgsasl -lgnutls -lgcrypt \
 
  -lldap -lgnuradius -lpam -ldl
 
 
 
Other available keywords are:
 
 
 
;mbox
 
:Link in the UNIX mbox format support.
 
;mh
 
:Link in the MH format support.
 
;maildir
 
:Link in the Maildir format support.
 
;imap
 
:Link in the IMAP protocol support.
 
;pop
 
:Link in the POP protocol support.
 
;nntp
 
:Link in the NNTP protocol support.
 
;mailer
 
:Enable support for [[mailer]]s.
 
;sieve
 
:Link in the support for [[Sieve]] mail filtering language.
 
;dbm
 
:Link in the support for DBM databases ([[libmu_dbm]] library).
 
;compat
 
:Provide a compatibility layer for Mailutils 2.x.
 
;auth
 
:Link in the Mailutils authentication library.
 
;guile
 
:Provide [[Guile]] language bindings.
 
;python
 
:Provide [[Python]] language bindings.
 
;cfg
 
:Link in the [[libmu_cfg|Mailutils configuration library]].
 
;argp
 
:Link in the library for command line parsing.
 
 
 
== query ==
 
The <tt>mu query</tt> command queries values from Mailutils configuration files.  It takes one or more [[configuration path]]s as its arguments.  On output, it displays the values it found, each value on a separate line.  If the requested value is a block statement it is displayed in full.  For example, if main configuration file contained:
 
 
 
<source lang="C">
 
  logging {
 
    syslog yes;
 
    facility mail;
 
  };
 
</source>
 
 
 
Then:
 
 
 
  $ mu query .logging.syslog
 
  syslog yes;
 
  $ mu query .logging.syslog .logging.facility
 
  syslog yes;
 
  facility mail;
 
  $ mu query .logging
 
  logging {
 
    syslog yes;
 
    facility mail;
 
  };
 
 
 
Several command line options allow to modify output format.  The <tt>--value</tt> option instructs the command to output only values:
 
 
 
  $ mu query --value .logging.syslog
 
  yes
 
 
 
The <tt>--path</tt> option instructs it to print full path names for each value:
 
 
 
  $ mu query --path .logging.syslog
 
  logging.syslog: yes
 
 
 
The <tt>--program</tt> option instructs <tt>mu</tt> to behave as if it was called under another program name.  For example, the following command:
 
 
 
  $ mu query --program=pop3d .server.transcript
 
 
 
will return the value of the <tt>server.transcript</tt> statement for <tt>pop3d</tt> utility.
 
 
 
By default, <tt>mu query</tt> operates on the main configuration file.  Another configuration file can be supplied using the <tt>--file</tt> (<tt>-f</tt>) option:
 
 
 
  $ mu query --file /usr/local/etc/file.conf .pidfile
 
 
 
== 2047 ==
 
The <tt>mu 2047</tt> command is a filter for decoding or encoding email message headers formatted in accordance with [http://www.faqs.org/rfcs/rfc2047.html RFC 2047].  By default, it operates in encode mode and assumes the _iso-8859-1_ encoding.  If arguments are supplied in the command line, they are treated as the text to operate upon.  Otherwise the command acts as a UNIX filter, reading lines from the standard input and printing results on the standard output:
 
 
 
For examle:
 
 
 
  $ mu 2047 'Keld Jørn Simonsen <keld@dkuug.dk>'
 
  =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
 
 
 
The decode mode can be requested via the <tt>--decode</tt> (<tt>-d</tt>) option:
 
 
 
  $ mu 2047 --decode '=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>'
 
  Keld Jørn Simonsen <keld@dkuug.dk>
 
 
 
The <tt>--charset</tt> (<tt>-c</tt>) option changes the default character set, e.g.:
 
 
 
  $ mu 2047 --charset=utf-8 'Keld Jørn Simonsen <keld@dkuug.dk>'
 
  =?utf-8?Q?Keld J=C3=B8rn Simonsen <keld@dkuug.dk>?=
 
 
 
This option is meaningful both in decode and in encode modes.  In decode mode it instructs the utility to convert the output to the given character set.  In encode mode it indicates the encoding of the input data, which will be reflected in the resulting string:
 
 
 
  $ quoted-printable
 
 
 
The <tt>--encoding</tt> (<tt>-E</tt>) option can be used in encode mode to change the output encoding.  Valid arguments for this option are: <tt>quoted-printable</tt> (the default) or <tt>base64</tt>.
 
 
 
The <tt>--newline</tt> (<tt>-n</tt>) option prints an additional newline character after each line of output.
 
 
 
== filter ==
 
Applies a chain of filters to the input.
 
 
 
== acl ==
 
Tests Mailutils access control lists;
 
 
 
== wicket ==
 
Scans [[wicket]]s for matching URLs
 
 
 
== dbm ==
 
Invokes a DBM management tool.
 
 
 
== logger ==
 
Logs information using Mailutils log facility.
 
 
 
== pop ==
 
Invokes a POP3 client shell.
 
 
 
== imap ==
 
Invokes an IMAP4 client shell (in development).
 

Latest revision as of 10:37, 11 July 2015