#!/bin/bash

ATTACH1=file.xls<br>
SUBJECT="subj"<br>
FROM=me@domain.com<br>
TO=you@domain.com<br>
CC=them@domain.com<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>

Привет,

Приведенный выше код может отправить файл xls с помощью сценария оболочки. Но проблема в том, что полученный файл не может быть открыт. Кроме того, размер файла xls становится меньше. Пример: исходный размер xls вложения составляет 17 КБ перед отправкой, но полученный файл становится размером 378 Б после отправки.

Что я могу сделать, чтобы полученный xls стал читаемым при открытии получателем? Что не так или отсутствует в приведенном выше сценарии? Пожалуйста помоги!!!!

И кстати.. Я не могу использовать MUTT

1 ответ1

0

Вам необходимо указать Content-Transfer-Encoding для части MIME с вложением. Я не знаю, является ли uuencode стандартным. Base64 - это все же.

Вам также необходимо отправить маркер закрывающей границы.

Ваше перенаправление на кошку неверно.

(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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .