Adiciona imagens ao email

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

[ Hits: 6.095 ]

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

Medidor de bateria de laptop modo texto

PkgBuild - um gerenciador de construção de pacotes

Ver endereço IP externo com DuckDuckGo + wget

Converter slides swf baixados do slideshare para pdf

Fazendo Backup de arquivos de micros em redes.


  

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