Como posso enviar e-mail com o arquivo anexo xls usando o script de shell como tipo de mipo application / xls sem fazer com que o arquivo recebido se torne ilegível

0
#!/bin/bash

ATTACH1=file.xls<br>
SUBJECT="subj"<br>
[email protected]<br>
[email protected]<br>
[email protected]<br>
MIME="Application/vnd.ms-excel" <br>
FILE=$ATTACH1<br>
boundary="---my-unlikely-text-for-mime-boundary---$$--" <br>
(cat <<!<br>
From: $FROM<br>
To: $TO<br>
Subject: $SUBJECT<br>
Date: $(date +"%a, %b %e %Y %T %z")<br>
Mime-Version: 1.0<br>
Content-Type: multipart/mixed; boundary="$boundary"<br>


This email has attached the file<br>
--$boundary<br>
Content-Type: $MIME;name="$FILE"<br>
Content-Disposition: attachment;filename="$FILE"<br>

!<br>
uuencode ${ATTACH1} ${ATTACH1}<br>
) | sendmail -v ${TO}<br>

Oi,

O código acima pode enviar o arquivo xls usando o shell script. Mas o problema é que o arquivo recebido não pode ser aberto. Além disso, o tamanho do arquivo do xls se torna menor. Exemplo: o tamanho original do anexo xls é de 17kb antes do envio, mas o arquivo recebido se torna 378b após ser enviado.

O que posso fazer para que os xls recebidos sejam legíveis quando abertos pelo receptor? O que está errado ou faltando no script acima? Por favor ajude !!!!

E a propósito. NÃO POSSO USAR MUTT

    
por RaymonN 15.01.2016 / 11:15

1 resposta

0

Você precisa especificar o Content-Transfer-Encoding para a parte MIME com o anexo. Eu não sei se o uuencode é um padrão. Base64 é embora.

Você também precisa enviar o marcador de limite de fechamento.

Seu redirecionamento para o gato está errado.

(cat << !
From: $FROM
To: $TO
Subject: $SUBJECT
Date: $(date +"%a, %b %e %Y %T %z")
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="$boundary"

This email has attached the file

--$boundary
Content-Type: text/plain; charset=ISO-8859-1

Please see the attachmed file.

--$boundary
Content-Transfer-Encoding: base64
Content-Type: $MIME;name="$ATTACH1"
Content-Disposition: attachment;filename="$ATTACH1"

$(base64 "$ATTACH1")

--$boundary--
!
) | sendmail -v "$TO"
    
por 15.01.2016 / 12:41