GNU/Linux >> Belajar Linux >  >> Linux

Mengirim email HTML menggunakan skrip shell

Pertama, Anda perlu menulis pesan. Minimal terdiri dari dua header ini:

MIME-Version: 1.0
Content-Type: text/html

... dan isi pesan yang sesuai:

<!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>

Setelah Anda memilikinya, Anda dapat meneruskan informasi yang sesuai ke perintah 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]

Ini adalah contoh yang terlalu disederhanakan, karena Anda juga perlu menangani rangkaian karakter, pengodean, panjang baris maksimum... Tapi ini pada dasarnya idenya.

Sebagai alternatif, Anda dapat menulis skrip Anda dalam Perl atau PHP daripada shell biasa.

Perbarui

Skrip shell pada dasarnya adalah file teks dengan akhiran baris Unix yang dimulai dengan baris yang disebut shebang yang memberi tahu shell juru bahasa mana yang harus meneruskan file tersebut, mengikuti beberapa perintah dalam bahasa yang dipahami juru bahasa dan memiliki izin eksekusi (di Unix itu adalah atribut berkas). Misalnya, katakanlah Anda menyimpan yang berikut sebagai hello-world :

#!/bin/sh

echo Hello, world!

Kemudian Anda menetapkan izin eksekusi:

chmod +x hello-world

Dan akhirnya Anda dapat menjalankannya:

./hello-world

Apa pun, ini tidak ada hubungannya dengan pertanyaan awal. Anda harus terbiasa dengan skrip shell dasar sebelum melakukan tugas lanjutan dengannya. Ini dia beberapa tautan tentang bash , shell populer:

http://www.gnu.org/software/bash/manual/html_node/index.html

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html


Sejauh ini saya telah menemukan dua cara cepat di cmd linux

  1. Gunakan surat jadul

mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html

  1. Gunakan mutt

mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html


Tag tersebut menyertakan 'sendmail' jadi inilah solusi untuk menggunakannya:

(
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

Pembungkus untuk sendmail dapat mempermudah pekerjaan ini, misalnya, mutt:

mutt -e 'set content_type="text/html"' [email protected] -s "subject" <  message.html

Linux
  1. Script Shell Dengan Fungsi Dan Parameter Sebagai Variabel?

  2. Bagaimana Cara Membuat Animasi Rotasi Menggunakan Shell Script?

  3. Menggunakan perintah passwd dari dalam skrip shell

  1. Periksa konektivitas basis data menggunakan skrip Shell

  2. Mengirim email dari skrip shell linux

  3. Bagaimana cara menyisipkan baris baru di skrip shell Linux?

  1. Dapatkan alamat MAC menggunakan skrip shell

  2. Menghitung persentase pembulatan dalam Shell Script tanpa menggunakan bc

  3. Menggunakan modem untuk mengirim rekaman suara