Senden von HTML mit Mailx mit Postfix 2.6.6 und CentOS 6.4

Senden von HTML mit Mailx mit Postfix 2.6.6 und CentOS 6.4

Ich versuche, eine HTML-E-Mail von unserem CentOS-Server an Benutzer zu senden. Langfristig werde ich ein COBOL-Programm erstellen, das den Befehl zum Senden von Berichten an den Benutzer ausführt.

Hier sind einige Einzelheiten.

  • CentOS 6.4
  • MAU: Mailx
  • MTA: Postfix 2.6.6
  • Postfix betreibt ein Relay über einen Exchange-Server.

Was die Befehle angeht, die ich versucht habe auszuführen. Der, den ich heute am häufigsten gesehen habe, ist der folgende.

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

Nach dem Ausführen des angezeigten Befehls erhalte ich die Fehlermeldung „Content-Type: text/html: Keine solche Datei oder kein solches Verzeichnis“. Ich bin ziemlich sicher, dass nach einem bestimmten Update -a nicht mehr als Flag für die Content-Type-Bezeichnung zugelassen wurde.

Ich habe auch versucht, den „Content-Type: text/html“ als allererste Zeile zur eigentlichen Datei bodytext.html hinzuzufügen. Ich bin irgendwie ratlos, was ich tun kann, um die HTML-E-Mail zu senden. Einige der Quellen, die ich gefunden habe, sagen, dass Mailx und Postfix HTML-E-Mails nicht richtig senden können. Hoffentlich ist das nicht der Fall, aber wenn doch, würde ich gerne wissen, was Sie von anderen MAU- und MTA-Technologien halten?

Antwort1

Da Sie anscheinend die volle Kontrolle über die generierte Textdatei haben, wäre die /usr/sbin/sendmaildirekte Einbindung der einfachste und wahrscheinlich portabelste Weg.

/usr/sbin/sendmail -t < complete-mail.txt

Dazu müssten Sie alle wichtigen Header selbst hinzufügen ( From, To, Subject, und Content-Type). Die Datei sollte folgendermaßen aussehen:

From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html

<html>…</html>

Postfix fügt fehlende, aber erforderliche Header hinzu, wie Date.

Antwort2

Hast du überhaupt die Bedienungsanleitung gelesen fürmailx, insbesondere die -aOption?

-a file Hängen Sie die angegebene Datei an die Nachricht an.

AusGilles Antwort, da CentOS diese Version von verwendet mailx:

Mit dem Erbstückmailx, es gibt keine bequeme Möglichkeit. Eine Möglichkeit, beliebige Header einzufügen, besteht darin, editheaders=1 zu setzen und einen externen Editor (das kann ein Skript sein) zu verwenden.

## Prepare a temporary script that will serve as an editor.
## This script will be passed to ed.
temp_script=$(mktemp)
cat <<'EOF' >>"$temp_script"
1a
Content-Type: text/html
.
$r test.html
w
q
EOF
## Call mailx, and tell it to invoke the editor script
EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
~e
.
EOF
rm -f "$temp_script"

Postfix kann sicherlich HTML-Mails versenden.

verwandte Informationen