Minimal MTA que entrega correio localmente (para o cron)?

14

No meu laptop, eu configurei um cron que realiza um trabalho semanal. Se houver algo a relatar, eu gostaria de receber um e-mail para ele. Agora estou usando o KMail como MUA, que é capaz de ler e-mails do diretório Maildir em ~/.local/share/local-mail . Assim, quero que o correio local seja entregue para essa pasta (com uma estrutura do Maildir).

Eu esperava que já existisse um programa morto que tivesse uma interface sendmail (tal que echo "$REPORT" | mail -s "$SUBJECT" "$ME" possa trabalhar com ele). Instalar e-mail exim ou encaminhamento para o meu servidor de e-mail remoto é considerado um exagero.

A questão A maneira mais simples de encaminhar todos os e-mails do servidor? parece direcionar o encaminhamento remoto que não combina com o meu necessidades (eu preciso de entrega local). Esse thread antigo do Gentoo acabou criando um script antigo em Perl. Certamente, deve existir um programa bem pensado, morto-simples?

Alguma recomendação? Estou usando o Arch Linux.

    
por Lekensteyn 07.07.2013 / 16:50

1 resposta

6

Como não encontrei um programa pequeno e existente, decidi escrever o meu próprio. Originalmente, eu inventei:

#!/bin/bash
# Simple sendmail
# filename per spec at http://cr.yp.to/proto/maildir.html
rand=$((RANDOM % 1000))
msgname=$(date +%s).P$$R$rand.$(hostname | tr '/:' '72')

# Safety measure: do not overwrite existing mail
set -o noclobber

cat > ~peter/".local/share/local-mail/inbox/new/$msgname"

Isso funcionou ... exceto se o usuário que está executando o script não for "peter". O sucessor dessa idéia é um "pequeno" programa C, femtomail . A partir do seu README:

femtomail - minimal MDA with Maildir support

femtomail is a minimal Mail Delivery Agent (MDA) for local mail. Mail is accepted from standard input and placed in a Maildir box of a user. This software is intended for use on a single-user machine.

Remote delivery, daemonizing, sender verification, etc. is not implemented and won't be implemented due to its complexity. femtomail is not written because mail software did not exist, but because existing software were too large for the simple task of delivering cron mail to the local user.

The workflow of femtomail:

  1. Change the process user and group.
  2. Create a new file with a unique filename in the mail directory.
  3. Write a Received header to the file.
  4. Pass data from standard input to the file.
  5. Exit.

O código-fonte e as instruções de instalação estão disponíveis no link .

    
por 09.07.2013 / 19:49