GNU/Linux >> Znalost Linux >  >> Linux

Odesílání HTML pošty pomocí shell skriptu

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

  1. Používejte starou školní poštu

mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" example@unixlinux.online < mytest.html

  1. 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

Linux
  1. Neočekávané chování skriptu Shell?

  2. Shell skript s funkcí a parametrem jako proměnnými?

  3. Skript Shell visí na příkazu Mail?

  1. Jak vytvořit animaci rotace pomocí skriptu Shell?

  2. Upravte skript shellu, když je spuštěn

  3. Bash skript:Použití příkazu script z bash skriptu pro protokolování relace

  1. Použití příkazu passwd ze skriptu shellu

  2. Zkontrolujte konektivitu databáze pomocí skriptu Shell

  3. Připojení k WiFi pomocí adb shell