Nejprve musíte napsat zprávu. Naprosté minimum se skládá z těchto dvou hlaviček:
MIME-Version: 1.0
Content-Type: text/html
... a příslušné tělo zprávy:
<!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>
Jakmile jej budete mít, můžete příslušné informace předat příkazu mail:
body = '...'
echo $body | mail \
-a "From: example@unixlinux.online" \
-a "MIME-Version: 1.0" \
-a "Content-Type: text/html" \
-s "This is the subject" \
example@unixlinux.online
Toto je příliš zjednodušený příklad, protože se také musíte postarat o znakové sady, kódování, maximální délku řádku... Ale to je v podstatě myšlenka.
Alternativně můžete napsat svůj skript v Perlu nebo PHP spíše než v prostém shellu.
Aktualizovat
Skript shellu je v podstatě textový soubor s unixovými konci řádků, který začíná řádkem zvaným shebang, který říká shellu, kterému interpretu musí soubor předat, následovat některé příkazy v jazyce, kterému interpret rozumí, a má oprávnění ke spuštění (v Unixu je to atribut souboru). Řekněme, že následující uložíte jako hello-world
:
#!/bin/sh
echo Hello, world!
Poté přiřadíte oprávnění k provedení:
chmod +x hello-world
A konečně to můžete spustit:
./hello-world
Každopádně to s původní otázkou jaksi nesouvisí. Než budete s ním provádět pokročilé úkoly, měli byste se seznámit se základním skriptováním shellu. Zde je několik odkazů o bash , populární shell:
http://www.gnu.org/software/bash/manual/html_node/index.html
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
Zatím jsem našel dva rychlé způsoby v cmd linux
- Používejte starou školní poštu
mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" example@unixlinux.online < mytest.html
- Použijte mutt
mutt -e "my_hdr Content-Type: text/html" example@unixlinux.online -s "subject" < mytest.html
Značky obsahují 'sendmail', takže zde je řešení, které to používá:
(
echo "From: example@unixlinux.online "
echo "To: example@unixlinux.online "
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
Obal pro sendmail může tuto práci usnadnit, například mutt:
mutt -e 'set content_type="text/html"' example@unixlinux.online -s "subject" < message.html