Primero necesitas redactar el mensaje. El mínimo indispensable se compone de estos dos encabezados:
MIME-Version: 1.0
Content-Type: text/html
... y el cuerpo del mensaje apropiado:
<!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 vez que lo tenga, puede pasar la información apropiada al comando de correo:
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]
Este es un ejemplo demasiado simplificado, ya que también debe cuidar los juegos de caracteres, las codificaciones, la longitud máxima de línea... Pero esta es básicamente la idea.
Alternativamente, puede escribir su secuencia de comandos en Perl o PHP en lugar de shell simple.
Actualizar
Un script de shell es básicamente un archivo de texto con terminaciones de línea de Unix que comienza con una línea llamada shebang que le dice al shell a qué intérprete debe pasar el archivo, sigue algunos comandos en el idioma que el intérprete entiende y tiene permiso de ejecución (en Unix eso es un atributo de archivo). Por ejemplo, supongamos que guarda lo siguiente como hello-world
:
#!/bin/sh
echo Hello, world!
Luego asigna permiso de ejecución:
chmod +x hello-world
Y finalmente puedes ejecutarlo:
./hello-world
Lo que sea, esto no tiene relación con la pregunta original. Debe familiarizarse con las secuencias de comandos de shell básicas antes de realizar tareas avanzadas con ellas. Aquí tienes un par de enlaces sobre bash , un shell popular:
http://www.gnu.org/software/bash/manual/html_node/index.html
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
Hasta ahora he encontrado dos formas rápidas en cmd linux
- Usar el correo de la vieja escuela
mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html
- Usar mut
mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html
Las etiquetas incluyen 'sendmail', así que aquí hay una solución que usa eso:
(
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 contenedor para sendmail puede facilitar este trabajo, por ejemplo, mutt:
mutt -e 'set content_type="text/html"' [email protected] -s "subject" < message.html