Send e-mail med sendmail: Emnefelt før indhold fra stdout-kilde som ifconfig eller zcat

Hvordan kan sendmail bruges til at sende en e-mail med emnefelt i en enkelt linje, hvor emnefeltet kommer før e-mail-indholdet, og hvor indholdet kan komme fra enhver stdout-kilde som ifconfig eller zcat?

For at sende en e-mail med sendmail, hvor emnefeltet kommer før e-mail-indholdet fra en stdout-kilde som ifconfig eller zcat, skal du oprette en midlertidig fil, tilføje emnefeltet og e-mail-indholdet, og derefter sende e-mailen ved at læse fra filen.

Hvordan kan sendmail bruges til at sende en e-mail med emnefelt i en enkelt linje, hvor emnefeltet kommer før e-mail-indholdet, og hvor indholdet kan komme fra enhver stdout-kilde som ifconfig eller zcat?

For at sende en e-mail med sendmail, hvor emnefeltet kommer før e-mail-indholdet, og hvor indholdet kan komme fra enhver stdout-kilde som ifconfig eller zcat, kan du bruge følgende fremgangsmåde:

  1. Opret en midlertidig fil til at holde e-mailens indhold.
  2. Tilføj emnefeltet til den midlertidige fil.
  3. Tilføj e-mail-indholdet fra stdout-kilden til den midlertidige fil.
  4. Brug sendmail til at sende e-mailen ved at læse fra den midlertidige fil.

Her er et eksempel på, hvordan du kan gøre dette i en shell-script:

#!/bin/bash

# Definer variabler
TO_ADDRESS="[email protected]"
SUBJECT="Dette er emnefeltet"
TEMP_FILE="/tmp/email.txt"

# Opret midlertidig fil og tilføj emnefeltet
echo "Subject: $SUBJECT" > $TEMP_FILE

# Tilføj e-mail-indholdet fra en stdout-kilde, f.eks. ifconfig
ifconfig >> $TEMP_FILE

# Send e-mailen
sendmail $TO_ADDRESS < $TEMP_FILE

# Fjern midlertidig fil
rm $TEMP_FILE

Forklaring:

  • TO_ADDRESS: E-mail-adressen på modtageren.
  • SUBJECT: Emnefeltet for e-mailen.
  • TEMP_FILE: Stien til den midlertidige fil, der bruges til at holde e-mailens indhold.
  • echo "Subject: $SUBJECT" > $TEMP_FILE: Skriver emnefeltet til den midlertidige fil.
  • ifconfig >> $TEMP_FILE: Tilføjer output fra ifconfig til den midlertidige fil.
  • sendmail $TO_ADDRESS < $TEMP_FILE: Sender e-mailen ved at læse fra den midlertidige fil.
  • rm $TEMP_FILE: Fjerner den midlertidige fil efter e-mailen er sendt.

Du kan erstatte ifconfig med enhver anden kommando, der genererer output til stdout, såsom zcat.