Pauca sed matura

... Weniges, dafür Reifes ... (Motto Carl Friedrich Gauss') ...


Thunderbird ist fein, wer jedoch wie ich Tastaturliebhaber ist (oder einfach wenig Zeit hat), dem sei hier eine Variante empfohlen, eine Vielzahl von IMAP-Konten innerhalb der Linux-Shell (bash, was sonst ;-) zu betreiben.

Am Beispiel eines web.de-IMAP-Accounts mit SSL-Verschlüsselung und eines Scripts fuer die Druckausgabe ( via muttprint) sei hier in den entscheidenden Ausschnitten so vorgestellt, dass das Sytem mit auch nach dortiger Umstellung auf Zwangsverschlüsselung funktioniert. Dieses Commandline-Mailsystem kann dann z.B. genutzt werden, um scriptgesteuert Mails über den Aufruf

echo "my remarks to your policy are ..." | /usr/bin/mutt -s "complaints" joe.biden@whitehouse.us
zu versenden. So kann man sich mit der unter EPB und PVR - Howto vorgestellten Lösung etwa automatisch benachrichtigen lassen, sobald ein Beitrag mit Meryl Streep im Genre Spielfilm gesendet wird.

Voraussetzung Konfigurationsdateien Ein Steuerscript, welches die Konfigurationsdateien je IMAP-Account austauscht (hier am Beispiel zweier Accounts, deren Konfigurationsdateien das jeweilige Suffix web.de, bzw. 1und1 tragen):


mymutt

#!/bin/bash
#
#----------------------------------------------
#
# Author: Dr. Heinz Breinlinger
#
# Aufruf: mymutt web.de|1und1
#
# Dieses Script kopiert die Konfigurationsdateien
# des jeweiligen Accounts (web.de oder 1und1) auf
# die Konfigurationsdateien für mutt.
#----------------------------------------------
account=${1:?"Bitte Account angeben"}
#----------------------------------------------
if [ "$account" == "web.de" ]; then
  if [ ! -f ~/.muttrc_web.de ]; then
    echo "Konnte ~./.muttrc_web.de nicht finden"
    exit
  fi
  cp ~/.muttrc_web.de ~/.muttrc 
  echo "Mailbox -> web.de"
  mutt
elif [ "$account" == "1und1" ]; then
  if [ ! -f ~/.muttrc_1und1 ]; then
    echo "Konnte ~./.muttrc_1und1.de nicht finden"
    exit
  fi
  cp ~/.muttrc_1und1 ~/.muttrc 
  mutt
  echo "Mailbox -> 1und1"
else
  echo "Es gibt nur web.de oder 1und1 ... exiting"
  exit
fi

.muttrc

Hier wird anstelle muttprint das eigene Druck-Script mymuttprint referenziert.
set imap_user=vorname.nachname
set imap_pass=passwort
set realname="Vorname Nachname"
set from=vorname.nachname@web.de
set folder=imaps://imap.web.de/
set smtp_url=smtp://vorname.nachname:passwort@smtp.web.de
source /pfad/zu/.muttrc_common

#-----------------------------------------------------------
# Dieser Teil ist der Inhalt von /pfad/zu/.muttrc_common
#-----------------------------------------------------------
#
# export LANG="de_DE" in .bashrc nicht vergessen !
#------------------------------------------
# Farben und Editor
#------------------------------------------
source /pfad/zu/.muttcolors
set editor=/usr/bin/vim
#------------------------------------------
# Allgemein
#------------------------------------------
set header_cache=~/.hcache
set mail_check=300
set net_inc=5
#------------------------------------------
# Umgebungszeilen in Pageransicht und kein
# Wechsel in naechste Mail am Ende der aktuellen
#------------------------------------------
set pager_context=3
set pager_stop=yes
#------------------------------------------
# Forwarding auch der Anhaenge
#------------------------------------------
set mime_forward=ask-yes
set mime_forward_rest=yes
#------------------------------------------
# URL-Anzeige
#------------------------------------------
macro pager \cu |urlview\n
auto_view text/html
#------------------------------------------
# Mailantwort ohne Bestaetigungsabfrage und
# mit Einschluss der Ursprungsmail
#------------------------------------------
set fast_reply=yes
set include=yes
#------------------------------------------
# IMAP allgemein
#------------------------------------------
set imap_check_subscribed=yes
set imap_list_subscribed=yes
set spoolfile="=Inbox"
set record="=Sent"
set postponed="=Drafts"
unset imap_passive
set imap_keepalive=300
#------------------------------------------
# Externer sendmail-Support nicht mehr noetig
#------------------------------------------
# set sendmail="/usr/bin/msmtp"
set use_from=yes
set envelope_from=yes
set ssl_force_tls=yes
# set ssl_starttls=yes
#------------------------------------------
# Kontakte
#------------------------------------------
set alias_file=/pfad/zu/.muttalias
set sort_alias=alias
set reverse_alias=yes
source $alias_file
#------------------------------------------
# Druck mit individuellem Script
#------------------------------------------
# set print_command="muttprint"
set print_command="/usr/bin/mymuttprint"
#------------------------------------------
# Seitenleiste
# ctrl-n, ctrl-p to select next, prev folder
# ctrl-o to open selected folder
#------------------------------------------
set sidebar_width=20
set sidebar_visible=yes
#set sidebar_sort=yes
#set sidebar_delim='|'
# set sidebar_shortpath=yes
# which mailboxes to list in the sidebar
# mailboxes=inbox=ml
color sidebar_new yellow default
bind index \CP sidebar-prev
bind index \CN sidebar-next
bind index \CO sidebar-open
bind pager \CP sidebar-prev
bind pager \CN sidebar-next
bind pager \CO sidebar-open
# I don't need these. just for documentation purposes. See below.
# sidebar-scroll-up
# sidebar-scroll-down
# b toggles sidebar visibility
# macro index b '<enter-command>toggle sidebar_visible<enter>'
# macro pager b '<enter-command>toggle sidebar_visible<enter>'
macro index b '<enter-command>toggle sidebar_visible<enter><refresh>'
macro pager b '<enter-command>toggle sidebar_visible<enter><redraw-screen>'
# Remap bounce-message function to "B"
bind index B bounce-message

mymuttprint

Druck aus mutt mit Ctrl-P ...

Das eingebundene Script common des Downloadbereiches beinhaltet die hier verwendete Funktion checkReturn
#!/bin/bash

#---------------------------------------------------------------------------------------------------------------------------
# In .muttprintrc(_web.de)
#   set print_command="/usr/bin/mymuttprint"
#
# Optionen fuer a2ps:
#   --portrait
#   --columns=1
#---------------------------------------------------------------------------------------------------------------------------

. /usr/bin/common

path=/pfad/zu/Prints
[ ! -d "$path" ] && die "$0: Pfad $path existiert nicht"

out=$(date "+%Y%m%d_%H%M%S")_ausgabe
qualOutPs="${path}/${out}.ps"
qualOutPdf="${path}/${out}.pdf"

#---------------------------------------------------------------------------------------------------------------------------
# => Postscript
#---------------------------------------------------------------------------------------------------------------------------
a2ps -o "${qualOutPs}" "$1" 
checkReturn "a2ps: Fehler"
#---------------------------------------------------------------------------------------------------------------------------
# Umlaute entschaerfen
#---------------------------------------------------------------------------------------------------------------------------
sed -i -e 's/\\303\\204/Ae/g' \
       -e 's/\\303\\244/ae/g' \
       -e 's/\\303\\206/Oe/g' \
       -e 's/\\303\\266/oe/g' \
       -e 's/\\303\\274/ue/g' \
       -e 's/\\303\\237/ss/g' "${qualOutPs}"
checkReturn "sed: Fehler"
#---------------------------------------------------------------------------------------------------------------------------
# => Pdf
#---------------------------------------------------------------------------------------------------------------------------
ps2pdf "${qualOutPs}" "${qualOutPdf}" 
checkReturn "ps2pdf: Fehler"
#---------------------------------------------------------------------------------------------------------------------------
# Loeschen
#---------------------------------------------------------------------------------------------------------------------------
rm "${qualOutPs}" 
checkReturn "rm: Fehler"
#---------------------------------------------------------------------------------------------------------------------------
# Anzeige
#---------------------------------------------------------------------------------------------------------------------------
mupdf "${qualOutPdf}" 

Impressum und Datenschutzerklärung