Adiciona imagens ao email

Publicado por Adriano Moreira da Silva (última atualização em 15/11/2011)

[ Hits: 5.998 ]

Homepage: http://adrianomoreira.eti.br

Download enviarEmailComImagensNoCorpo.sh




Shell script para mandar emails, com imagens embutidas no corpo html da mensagem.

  



Esconder código-fonte

#!/bin/bash
###############################################################################
#Adriano Moreira, novembro de 2011, tarde muito chuvosa de domingo
#Shell script para mandar emails, com imagens embutidas no corpo da mensagem,
#as imagens deverão estar no diretório em uso (pwd)
###############################################################################
 
 
###############################################################################
#Primeira parte: Personalização
 
#exemplo: "Adriano Moreira <adri3d@gmail.com>"
email_de="$USER <$USER@$HOSTNAME>"
 
#Como usar:
#exemplo1: "Marcelo <marcelo@exemplo.com>"
#exemplo2: "Marcelo <marcelo@exemplo.com>, Tania<marcelo@exemplo.com>, ..."
#Uma dica: Para enviar varios emails sem mostrar na mensagem quem mais recebeu
#troque esse valor por um parametro e chame esse script apartir de outro
email_para="Raul Seixas <raul@sky.net"
 
#use a criatividade
assunto="email $(uptime)"
 
#função que gera o cid para a tag img no html
echo "" > lista_images
function addimg(){
  echo $1 >> lista_images
  echo "cid:$( echo $1 | md5sum | awk '{print $1}' )"
}
 
##Aqui esta o corpo da mensagem em html
#Como usar:
#na tag img troque o src="foto.jpg" por src="$(addimg foto.jpg)"
html="
    <!-- aqui uma mensage em texto -->
    <p>bla bla bla<p>
     
    <!-- aqui umas images -->
    <img src=\"$(addimg 02.png)\" alt=\"texto alternativo da image 02\">
    <img src=\"$(addimg 01.png)\" alt=\"texto alternativo da image 01\">
"
 
 
###############################################################################
#Segunda Parte: Montando o email na unha
 
boundary="--$(uptime | md5sum | awk '{print $1}')"
 
(
#cabeçalho
echo "To: $email_para"
echo "Subject: $assunto"
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/mixed; boundary=\"$boundary\""
echo "From: $email_de"
echo
#corpo
echo "--$boundary"
echo "Content-Type: text/html; charset=utf-8"
echo "Content-Transfer-Encoding: Quot-Printed"
echo
 
echo "$html"
echo
 
for image in $(cat lista_images); do
 echo
 echo "--$boundary"
 imagetype="$( echo $image | awk -F. '{print $NF}')"
 case $imagetype in
   png | PNG )               echo -n "Content-Type: image/png" ;;
   jpg | JPG | jpeg | JPEG ) echo -n "Content-Type: image/jpeg" ;;
   gif | GIF )               echo -n "Content-Type: image/gif" ;;
   *)                        echo -n "Content-Type: image/$imagetype" ;;
 esac
 echo "; file_name = \"$image\"";
 echo "Content-ID: <$( echo $image | md5sum | awk '{print $1}' )>";
 echo "Content-Transfer-Encoding: base64";
 echo "Content-Disposition: inline; filename = \"$image\";"
 echo
 echo  $(openssl enc -base64 -in $image)
done
   
echo
echo "--$boundary"
) > mail_file
 
###############################################################################
#Parte Final: Enviando o email
for destinatario in $(echo $email_para | awk -F, '{print $1}');
do
  cat mail_file| sendmail -t "$destinatario"
done

Scripts recomendados

Previsão do tempo em cores no terminal

Verificar o tipo dos arquivo de um diretório

Implementando a famosa hélice ASCII

Slocal Manipulação de pacotes Slackware

Script simples para cálculos com dialog


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts