• Stars
    star
    451
  • Rank 96,994 (Top 2 %)
  • Language
    C
  • License
    Other
  • Created over 8 years ago
  • Updated 8 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unix utilities to deal with Maildir
MBLAZE(7)              Miscellaneous Information Manual              MBLAZE(7)

NAME
     mblaze – introduction to the mblaze message system

DESCRIPTION
     The mblaze message system is a set of Unix utilities for processing and
     interacting with mail messages which are stored in maildir folders.

     Its design is roughly inspired by MH, the RAND Message Handling System,
     but it is a complete implementation from scratch.

     mblaze consists of these Unix utilities that each do one job:

     maddr(1)     extract mail addresses from messages
     magrep(1)    search messages matching a pattern
     mbnc(1)      bounce messages
     mcom(1)      compose and send messages
     mdeliver(1)  deliver messages or import mbox file
     mdirs(1)     list maildir folders, recursively
     mexport(1)   export messages as mbox file
     mflag(1)     manipulate maildir message flags
     mflow(1)     reflow format=flowed plain text messages
     mfwd(1)      forward messages
     mgenmid(1)   generate a Message-ID
     mhdr(1)      print message headers
     minc(1)      incorporate new messages
     mless(1)     conveniently read messages in less(1)
     mlist(1)     list and filter messages
     mmime(1)     create MIME messages
     mmkdir(1)    create new maildir folders
     mpick(1)     advanced message filter
     mrefile(1)   move or copy messages between maildir folders
     mrep(1)      reply to messages
     mscan(1)     generate one-line message summaries
     msed(1)      manipulate message headers
     mseq(1)      manipulate message sequences
     mshow(1)     render messages and extract MIME parts
     msort(1)     sort messages
     mthread(1)   arrange messages into discussions

     mblaze is a classic command line MUA and has no features for receiving or
     transferring messages; you can operate on messages in a local maildir
     spool, or fetch your messages using fdm(1), getmail(1), offlineimap(1),
     or similar utilities, and send it using dma(8), msmtp(1), sendmail(8), as
     provided by OpenSMTPD, Postfix, or similar.

     mblaze operates directly on maildir folders and doesn't use its own
     caches or databases.  There is no setup needed for many uses.  All
     utilities have been written with performance in mind.  Enumeration of all
     messages in a maildir is avoided unless necessary, and then optimized to
     limit syscalls.  Parsing message metadata is optimized to limit I/O
     requests.  Initial operations on a large maildir may feel slow, but as
     soon as they are in the file system cache, everything is blazingly fast.
     The utilities are written to be memory efficient (i.e. not wasteful), but
     whole messages are assumed to fit into RAM easily (one at a time).

     mblaze has been written from scratch and is now well tested, but it is
     not 100% RFC-conforming (which is neither worth it, nor desirable).
     There may be issues with very old, nonconforming, messages.

     mblaze is written in portable C, using only POSIX functions (apart from a
     tiny Linux-only optimization), and has no external dependencies.  It
     supports MIME and more than 7-bit messages (everything the host iconv(3)
     can decode).  It assumes you work in a UTF-8 environment.  mblaze works
     well with other Unix utilities such as mairix(1), mu(1), or
     offlineimap(1).

EXAMPLES
     mblaze utilities are designed to be composed together in a pipe.  They
     are suitable for interactive use and for scripting, and integrate well
     into a Unix workflow.

     For example, you could decide you want to look at all unseen messages in
     your INBOX, oldest first.
           mlist -s ~/Maildir/INBOX | msort -d | mscan

     To operate on a set of messages in multiple steps, you can save it as a
     sequence, e.g. add a call to ‘mseq -S’ to the above command:
           mlist -s ~/Maildir/INBOX | msort -d | mseq -S | mscan

     Now mscan will show message numbers and you could look at the first five
     messages at once, for example:
           mshow 1:5

     Likewise, you could decide to incorporate (by moving from new to cur) all
     new messages in all folders, thread it and look at it interactively:
           mdirs ~/Maildir | xargs minc | mthread | mless

     Or you could list the attachments of the 20 largest messages in your
     INBOX:
           mlist ~/Maildir/INBOX | msort -S | tail -20 | mshow -t

     Or apply the patches from the current message:
           mshow -O. '*.diff' | patch

     As usual with pipes, the sky is the limit.

CONCEPTS
     mblaze deals with messages (which are files), folders (which are maildir
     folders), sequences (which are newline-separated lists of messages,
     possibly saved on disk in ${MBLAZE:-$HOME/.mblaze}/seq), and the current
     message (kept as a symlink in ${MBLAZE:-$HOME/.mblaze}/cur).

     Messages in the saved sequence can be referred to using special syntax as
     explained in mmsg(7).

     Many utilities have a default behavior when used interactively from a
     terminal (e.g. operate on the current message or the current sequence).
     For scripting, you must make these arguments explicit.

     For configuration, see mblaze-profile(5).

SEE ALSO
     mailx(1), mblaze-profile(5), nmh(7)

AUTHORS
     Leah Neukirchen <[email protected]>

     There is a mailing list available at [email protected] (to
     subscribe, send a message to [email protected]); archives
     are available at https://inbox.vuxu.org/mblaze/. There also is an IRC
     channel #vuxu on irc.libera.chat.  Please report security-related bugs
     directly to the author.

LICENSE
     mblaze is in the public domain.

     To the extent possible under law, the creator of this work has waived all
     copyright and related or neighboring rights to this work.

     http://creativecommons.org/publicdomain/zero/1.0/

Void Linux                     January 18, 2020                     Void Linux

More Repositories

1

nq

Unix command line queue utility
C
2,805
star
2

styleguide

443
star
3

bacon

a small RSpec clone
Ruby
426
star
4

cwm

portable version of OpenBSD's cwm(1) window manager
C
343
star
5

hrmpf

hrmpf rescue system, built on Void Linux
Shell
299
star
6

snooze

run a command at a particular time
C
198
star
7

xe

simple xargs and apply replacement
C
179
star
8

dosfetch

NeoFetch clone for DOS
Pascal
148
star
9

lr

list files, recursively
C
140
star
10

xtools

a few helpers for working with XBPS
Shell
129
star
11

extrace

trace exec() calls system-wide
C
116
star
12

rum

a gRand Unified Mapper for Rack
Ruby
106
star
13

redo-c

An implementation of the redo build system in portable C with zero dependencies
C
104
star
14

outils

port of some non-standard OpenBSD tools to Linux
C
78
star
15

gitsum

basic darcsum feelalike for Git
Emacs Lisp
67
star
16

ignite

OBSOLETE: use Void Linux
Shell
65
star
17

sabotage

an experimental distribution based on musl libc and busybox
Shell
63
star
18

rdumpfs

a rsync-based dump file system backup tool
Shell
59
star
19

leahutils

description of leahutils
56
star
20

obase

a port of the OpenBSD userland to Linux | unmaintained: use outils
C
51
star
21

colfm

A console, column-oriented file manager
Ruby
46
star
22

fail

crash in various possible ways
C
39
star
23

trivium

Trivium, my minimalist blogging engine
Ruby
39
star
24

rwc

report when files change
C
37
star
25

rps

Ruby Packaging Standard
Ruby
30
star
26

sq

a 7x15 pixel font inspired by Codec and Quadraat Sans Mono
Makefile
30
star
27

knock

Knock is a simplification of the Test Anything Protocol used by Perl and others.
Ruby
29
star
28

te

tiny emacs
C
25
star
29

virtualrb

Virtualize Ruby installations
Ruby
25
star
30

challis

a soft lightweight cloth
Ruby
22
star
31

nb

Nota Bene, a quick note-taking tool for Emacs
Emacs Lisp
22
star
32

notyet

a text-based recursive task tracker
Ruby
20
star
33

tools

various simple tools, not worth a project on their own
Ruby
19
star
34

5x13

a condensed pixel font built on 6x13 ("fixed")
Makefile
18
star
35

wibget

WibGet, a minimalist, but convenient Git web frontend
Ruby
17
star
36

git-merge-pr

apply GitHub pull request from command-line
Shell
17
star
37

libste

C string library based on string ends
C
17
star
38

vuxi

a minimalist static Wiki compiler
Ruby
15
star
39

rdd

random data dumper
C
15
star
40

qed-caltech

C
15
star
41

lywsd03mmc-exporter

a Prometheus exporter for the LYWSD03MMC BLE thermometer
Go
14
star
42

yam

Yam, a functional language running as JavaScript
JavaScript
14
star
43

reap

run process until all its spawned processes are dead
C
14
star
44

necho

minimal, sensible alternatives to echo(1)
C
14
star
45

rup

a sane and simple Ruby package manager
14
star
46

hyx

terminal hex editor
C
13
star
47

signify

portable version of OpenBSD's signify(1) signature tool
C
13
star
48

coma

a console mail user agent | obsolete: use mblaze
Ruby
13
star
49

coset-mirror

(experimental) Mirror of the coset darcs repository
Ruby
12
star
50

tt

a 9term-compatible terminal in Ruby/Tk
Ruby
12
star
51

hittpd

efficient, no-frills HTTP 1.1 server
C
11
star
52

daiquiri

a Rack-based resourceful web framework
11
star
53

wcal

ISO weekly calendar
C
11
star
54

px

search for processes and print top(1)-like status
C
11
star
55

rs

rs(1) — reshape a data array (from OpenBSD) | unmaintained: use outils
C
11
star
56

rack-mirror

OUTDATED mirror of Rack's darcs repository, use github.com/chneukirchen/rack
Ruby
10
star
57

amok

a compact mock library
Ruby
9
star
58

rubyports

Hookin-based RubyPorts system
Ruby
9
star
59

xlossage

display pressed keys in X11 in a readable way
C
8
star
60

arr

(re)arrange and select fields on each line
Groff
8
star
61

rnl

remove trailing newlines
Shell
8
star
62

sgn

pseudonymous digital signatures
Emacs Lisp
7
star
63

ji

a minimalist forum software
Ruby
7
star
64

vmenu

personal fork of vis-menu/slmenu
C
7
star
65

revisit

a TODO list for the future
Ruby
7
star
66

clitter

a ncurses twitter client
Ruby
7
star
67

schell

a lispy shell scripting language
Scheme
7
star
68

htping

periodically send HTTP requests
Go
7
star
69

netpbm-mirror

git-svn mirror of netpbm (updated manually)
C
6
star
70

mlog

merge log files by timestamp
C
6
star
71

listening

check if a TCP server is listening
C
5
star
72

snowcat

encrypted data streams over sockets
Go
5
star
73

atxec

run command expanding arguments from file or environment
Perl
5
star
74

adventofcode2019

Advent of Code (adventofcode.com) in k and Perl 5
Perl
5
star
75

musl-chris2

my sandbox for playing with musl
C
5
star
76

lrep

literate read-eval-print
Ruby
5
star
77

adventofcode2022

Advent of Code 2022 in Racket and Zig.
Racket
4
star
78

rexample

Ruby
4
star
79

holes

find runs of zero bytes
C
4
star
80

tap3

check output/error/status of a command against a specification
Perl
4
star
81

btac

print file in reverse order
C
4
star
82

rmeta

a OMeta implementation for Ruby
4
star
83

sson

S-Expression Standard Object Notation
Ruby
4
star
84

adventofcode2015

Advent of Code (adventofcode.com) in K
Ruby
4
star
85

noir

a new programming language
JavaScript
4
star
86

dwm-chris2

Personal dwm fork.
C
3
star
87

parseopt

a collection of command line argument parsers
Shell
3
star
88

rc

C
3
star
89

xdu

display the output of "du" in an X window
C
3
star
90

pds

parallel data substitution
Ruby
3
star
91

adventofcode2020

Advent of Code 2020 (adventofcode.com) in J and Clojure
Clojure
3
star
92

ulidgen

generate or tag lines with ULID
C
2
star
93

gleam-codespace

A codespace to work with Gleam
Dockerfile
2
star
94

actions-archive-all

generate tarballs including submodules from GitHub Actions
Shell
2
star
95

docker-lab-bgp

A small BGP lab in Docker
2
star
96

literate-janet

Makefile
2
star
97

adventofcode2021

Advent of Code 2021 (adventofcode.com) in BQN and Clojure
Clojure
2
star
98

adventofcode2017

adventofcode.com 2017
C++
2
star
99

conference-sponsors

Conference Sponsor tracking
2
star
100

systas

Systas Scheme (archival copy)
C
2
star