Vários arquivos html no corpo do E-mail como blocos de tabela separados

0

Estou tentando gerar e enviar arquivos html anexando ao corpo do email. Eu tentei usar o awk para gerar e enviar um arquivo. por exemplo. o arquivo de entrada MARTINI possui estes registros:

1554894,2015-04-16,00:21:52,processes.martini_gsicorptradeeventoutput.instancecount,0,1,UP
1554793,2015-04-15,22:03:52,processes.martini_gsicorptradeeventoutput.instancecount,2,0,DOWN 

e eu tenho esse awk em um arquivo chamado HTML:

awk 'BEGIN {
    FS=","
    print  "MIME-Version: 1.0"
    print  "To:[email protected]"
    print  "From:[email protected]"
    print  "Subject: Health check"
    print  "Content-Type: text/html"
    print  "Content-Disposition: inline"
    print  "<HTML>""<TABLE border="1"><TH>Ref_id</TH><TH>EOD</TH><TH>Time</TH><TH>Process</TH><TH>Desc</TH><TH>Instance</TH><TH>Status</TH>"
    }
    {
    printf "'<TR>'"
    for(i=1;i<=NF;i++)
    printf "'<TD>%s</TD>'", $i
    print "'</TR>'"
    }
END {
    print "'</TABLE></BODY></HTML>'"
} ' /home/martini > /home/martini_html

Mais tarde, envio este arquivo por e-mail cat MARTINI_HTML | /usr/sbin/sendmail -t . Isso funciona até aqui. Mas agora eu tenho 2 novas tarefas:

Como converter vários arquivos Diga MARTINI1, MARTINI2 ... etc em arquivos html e como anexá-los no corpo do email como bloco de tabela separado e não como uma única tabela? Alguns utilitários de correio, como mailx , não estão disponíveis.

    
por LIJO 31.05.2015 / 16:09

1 resposta

1

Você precisará definir o tipo de conteúdo como multipart / mixed e definir um limite (string separadora) e adicionar uma instância da string entre cada arquivo . Eu forneci alguns exemplos disso um tempo atrás neste post: Usando apenas Bash e Sendmail para enviar vários arquivos de entrada e / ou um pipe como anexos em um e-mail

Um pouco do código:

# ========================
# Attach file to msg
# ========================
attach_file() {

cat >> $TMP_FL << EOF

--$BOUNDARY
Content-Type: $MIMETYPE; name="$MAIL_FL"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="$MAIL_FL"

'cat $ATTACHMENT'
EOF
}

# ========================
# ========================
create_msg() {

  cat > $TMP_FL <<EOF
From: $FROM
'echo -e $MAILTO'
Reply-To: $REPLY_TO
Subject: $SUBJECT_LINE
Content-Type: multipart/mixed; boundary="$BOUNDARY"

This is a MIME formatted message.  If you see this text it means that your
email software does not support MIME formatted messages, but as plain text
encoded you should be ok, with a plain text file.

--$BOUNDARY

EOF

...
for attach in "xxxxx yyyyyy"
do 
  ATTACHMENT=$attach
  attach_file >> $TMP_FL
done
...


  echo -e "\n--$BOUNDARY--\n" >> $TMP_FL
}
    
por 31.05.2015 / 16:37

Tags