Adiciona imagens ao email

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

[ Hits: 6.118 ]

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

Simples Verificador de E-mail Gmail

Conexão e desconexão ADSL automáticas

Multiplos gerenciadores nome do seu pacote

InstallTXZ - converte e instala pacotes do Slackware no Debian

Tecla / no vmware


  

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