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- Verwenden Sie alte Schulpost
mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html
- 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