My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# ----------------------------------------------------------------------------
# Envia email via ssmtp.
# Opções:
# -h, --help exibe a ajuda.
# -v, --verbose exibe informações para debug durante o processamento.
# -V, --version exibe a versão.
# -f, --from email do remetente.
# -t, --to email dos destinatários (separe com vírgulas, sem espaço).
# -c, --cc email dos destinatários em cópia (vírgulas, sem espaço).
# -b, --bcc emails em cópia oculta (vírgulas, sem espaço).
# -s, --subject o assunto do email.
# -e, --mensagem arquivo que contém a mensagem/corpo do email.
# Uso: zzenviaemail -f email -t email [-c email] [-b email] -s assunto -m msg
# Ex.: zzenviaemail -f quem_envia@dominio.com -t quem_recebe@dominio.com \
# -s "Teste de e-mail" -m "./arq_msg.eml"
#
# Autor: Lauro Cavalcanti de Sa <lauro (a) ecdesa com>
# Desde: 2009-09-17
# Versão: 20091010
# Licença: GPLv2
# Requisitos: ssmtp
# ----------------------------------------------------------------------------
zzenviaemail ()
{
zzzz -h enviaemail "$1" && return

# Declara variaveis.
local fromail tomail ccmail bccmail subject msgbody
local envia_data=`date +"%Y%m%d_%H%M%S_%N"`
local script_eml="${ZZTMPDIR}/.${FUNCNAME}_${envia_data}.eml"
local nparam=0

# Opcoes de linha de comando
while [ $# -ge 1 ]
do
case "$1" in
-f | --from)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
fromail=$2
nparam=$(($nparam + 1))
shift
;;
-t | --to)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
tomail=$2
nparam=$(($nparam + 1))
shift
;;
-c | --cc)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
ccmail=$2
shift
;;
-b | --bcc)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
bccmail=$2
shift
;;
-s | --subject)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
subject=$2
nparam=$(($nparam + 1))
shift
;;
-m | --mensagem)
[ "$2" ] || { zztool uso enviaemail; set +x; return 1; }
mensagem=$2
nparam=$(($nparam + 1))
shift
;;
-v | --verbose)
set -x
;;
*) { zztool uso enviaemail; set +x; return 1; } ;;
esac
shift
done

# Verifica numero minimo de parametros.
if [ "${nparam}" != 4 ] ; then
{ zztool uso enviaemail; set +x; return 1; }
fi

# Verifica se o arquivo existe.
zztool arquivo_existe "${mensagem}"

# Monta e-mail padrao para envio via SMTP.
echo "From: ${fromail} <${fromail}>" > ${script_eml}
echo "To: ${tomail}" >> ${script_eml}
echo "Cc: ${ccmail}" >> ${script_eml}
echo "Bcc: ${bccmail}" >> ${script_eml}
echo "Subject: ${subject}" >> ${script_eml}
cat ${mensagem} >> ${script_eml}
ssmtp -F ${1} ${tomail} ${ccmail} ${bccmail} < ${script_eml}
if [ -s "${script_eml}" ] ; then
rm -f "${script_eml}"
fi

set +x
}

Change log

r710 by aureliojargas on Mar 29, 2012   Diff
SEGURANÇA: $1 colocado entre aspas na
chamada padrão zzzz -h de todas as
funções.
Go to: 
Sign in to write a code review

Older revisions

r668 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis.
r486 by aureliojargas on May 20, 2011   Diff
COMBO: Arrumadas inconsistências de
espaços em branco na indentação de
várias funções. Foi usado o script
'alinhamento' para encontrar os
problemas. Estas alterações não mudam
...
r400 by aureliojargas on Apr 29, 2011   Diff
zzenviaemail, zzfrenteverso2pdf: não
são mais executáveis (chmod -x). Todas
as funções devem ser arquivos normais
(644).
All revisions of this file

File info

Size: 2879 bytes, 100 lines
Powered by Google Project Hosting