Difference between revisions of "Mu"

From Mailutils
Jump to navigationJump to search
(Change to a redirect link)
 
(60 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 ==
 
Decodes or encodes email message headers.
 
 
 
== 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