GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Senden von HTML-Mails mit einem Shell-Skript

Zuerst müssen Sie die Nachricht verfassen. Das absolute Minimum besteht aus diesen beiden Headern:

MIME-Version: 1.0
Content-Type: text/html

... und den entsprechenden Nachrichtentext:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>

<p>Hello, world!</p>

</body>
</html>

Sobald Sie es haben, können Sie die entsprechenden Informationen an den Mail-Befehl übergeben:

body = '...'

echo $body | mail \
-a "From: [email protected]" \
-a "MIME-Version: 1.0" \
-a "Content-Type: text/html" \
-s "This is the subject" \
[email protected]

Dies ist ein stark vereinfachtes Beispiel, da Sie sich auch um Zeichensätze, Codierungen, maximale Zeilenlänge kümmern müssen ... Aber das ist im Grunde die Idee.

Alternativ können Sie Ihr Skript auch in Perl oder PHP statt in der einfachen Shell schreiben.

Aktualisieren

Ein Shell-Skript ist im Grunde eine Textdatei mit Unix-Zeilenenden, die mit einer Zeile namens shebang beginnt, die der Shell mitteilt, an welchen Interpreter sie die Datei übergeben muss, einige Befehle in der Sprache befolgen muss, die der Interpreter versteht und die Ausführungserlaubnis hat (in Unix ist das eine Dateiattribut). Angenommen, Sie speichern Folgendes als hello-world :

#!/bin/sh

echo Hello, world!

Dann weisen Sie die Ausführungserlaubnis zu:

chmod +x hello-world

Und Sie können es endlich ausführen:

./hello-world

Was auch immer, das hat irgendwie nichts mit der ursprünglichen Frage zu tun. Sie sollten sich mit grundlegendem Shell-Scripting vertraut machen, bevor Sie damit fortgeschrittene Aufgaben ausführen. Hier sind ein paar Links zu bash , eine beliebte Shell:

http://www.gnu.org/software/bash/manual/html_node/index.html

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html


Bisher habe ich zwei schnelle Wege in cmd linux

gefunden
  1. Verwenden Sie alte Schulpost

mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html

  1. Mutt verwenden

mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html


Die Tags enthalten 'sendmail', also hier ist eine Lösung, die das verwendet:

(
echo "From: [email protected] "
echo "To: [email protected] "
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/alternative; " 
echo ' boundary="some.unique.value.ABC123/server.xyz.com"' 
echo "Subject: Test HTML e-mail." 
echo "" 
echo "This is a MIME-encapsulated message" 
echo "" 
echo "--some.unique.value.ABC123/server.xyz.com" 
echo "Content-Type: text/html" 
echo "" 
echo "<html> 
<head>
<title>HTML E-mail</title>
</head>
<body>
<a href='http://www.google.com'>Click Here</a>
</body>
</html>"
echo "------some.unique.value.ABC123/server.xyz.com--"
) | sendmail -t

Ein Wrapper für sendmail kann diese Aufgabe erleichtern, zum Beispiel mutt:

mutt -e 'set content_type="text/html"' [email protected] -s "subject" <  message.html

Linux
  1. Shell-Skript hängt am Mail-Befehl?

  2. Verwenden des passwd-Befehls innerhalb eines Shell-Skripts

  3. Überprüfen Sie die Datenbankkonnektivität mit Shell-Skript

  4. Senden einer E-Mail von einem Linux-Shell-Skript

  5. Ist es möglich, Ordner mit Shell-Skript rekursiv zu erstellen?

Einfaches Verständnis von Shell-Befehlen mit dem Skript „Explain Shell“ in Linux

So erstellen Sie einen Benutzer auf einer Linux-EC2-Instance auf AWS und fügen ihm mithilfe eines Shell-Skripts einen öffentlichen Schlüssel hinzu

Bash-Skript:Verwendung eines Skriptbefehls aus einem Bash-Skript zum Protokollieren einer Sitzung

Verbinden mit WLAN über die Adb-Shell

Farbige Shell-Script-Ausgabebibliothek

Iterieren Sie mithilfe des Shell-Skripts über die $PATH-Variable