Per prima cosa devi comporre il messaggio. Il minimo indispensabile è composto da queste due intestazioni:
MIME-Version: 1.0
Content-Type: text/html
... e il corpo del messaggio appropriato:
<!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>
Una volta ottenuto, puoi passare le informazioni appropriate al comando mail:
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]
Questo è un esempio troppo semplificato, dal momento che devi anche prenderti cura di set di caratteri, codifiche, lunghezza massima della riga... Ma questa è fondamentalmente l'idea.
In alternativa, puoi scrivere il tuo script in Perl o PHP invece che in semplice shell.
Aggiorna
Uno script di shell è fondamentalmente un file di testo con terminazioni di riga Unix che inizia con una riga chiamata shebang che dice alla shell a quale interprete deve passare il file, segue alcuni comandi nella lingua che l'interprete comprende e ha il permesso di esecuzione (in Unix questo è un attributo file). Ad esempio, supponiamo che tu salvi quanto segue come hello-world
:
#!/bin/sh
echo Hello, world!
Quindi assegni il permesso di esecuzione:
chmod +x hello-world
E puoi finalmente eseguirlo:
./hello-world
Qualunque cosa, questo non è in qualche modo correlato alla domanda originale. Dovresti familiarizzare con gli script di shell di base prima di eseguire attività avanzate con esso. Ecco un paio di link su bash , una shell popolare:
http://www.gnu.org/software/bash/manual/html_node/index.html
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
Finora ho trovato due modi rapidi in cmd linux
- Usa la posta della vecchia scuola
mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html
- Usa mutt
mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html
I tag includono "sendmail", quindi ecco una soluzione che lo utilizza:
(
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
Un wrapper per sendmail può facilitare questo lavoro, per esempio, mutt:
mutt -e 'set content_type="text/html"' [email protected] -s "subject" < message.html