Прикрепите один HTML-файл к электронному письму, используя сценарий оболочки

Я отправляю электронное письмо с помощью приведенных ниже команд, объединяя все выходные данные и отправляя их в одном электронном письме. Он отлично работает для меня.

mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r [email protected] [email protected] <<EOF
Data Successfully loaded into LIP_DATA_QUALITY table

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`

Error Percentage: $QUERY2
EOF

Теперь мне нужно прикрепить один файл к вышеуказанному электронному письму, и этот файл находится под temp folder с именем chart. И при отправке мне нужно отправить его как файл chart.html.

Итак, как я могу изменить мою команду выше, чтобы она могла прикреплять chart как chart.html file из temp folder в электронном письме.

Надеюсь, я всем понятен. Я бегу SunOS.

Любые предложения будут оценены.

Обновления:-

Если мне нужно добавить команду uuencode в мой сценарий оболочки, чтобы она была такой, как показано ниже? или что-то другое

mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r [email protected] [email protected] <<EOF
uuencode /tmp/chart chart.html
Data Successfully loaded into LIP_DATA_QUALITY table

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`

Error Percentage: $QUERY2
EOF

person arsenal    schedule 13.08.2012    source источник
comment
Составление сообщений MIME с помощью Python или Perl намного проще, чем с помощью сценариев оболочки.   -  person Paulo Scardine    schedule 13.08.2012


Ответы (3)


apt-get install sharutils

где run.sh — вложение, а hello — сообщение

(echo "hello"  ; uuencode run.sh run.sh ) | mailx -s "Testing 2" root@localhost



EMAILCONTENT="Data Successfully loaded into LIP_DATA_QUALITY table \n Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`\n Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`\n Error Percentage: $QUERY2 \n"
(echo $MAILCONTENT ; uuencode /tmp/chart chart.html ) | mailx -s "Testing 2" root@localhost


 ### OR
FILE="/tmp/email.content"
echo -e "Data Successfully loaded into LIP_DATA_QUALITY table \n Total Items Purchased: `echo $QUERY1 | awk '{print $1}'`\n Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`\n Error Percentage: $QUERY2 \n" > $FILE 
(cat $FILE ; uuencode /tmp/chart chart.html ) | mailx -s "Testing 2" root@localhost
person V H    schedule 13.08.2012
comment
Я только что обновил свой вопрос тем, как я использую uuencode command, правильно или нет? Любые мысли будут оценены. - person arsenal; 14.08.2012
comment
нет, это неверно, поскольку вы выполняете uuencode со строкой с именем EOF, которую вы передаете ей, правильным способом будет: (как указано выше, новый контент добавлен в этот пост) - person V H; 16.08.2012

вы можете использовать более универсальный почтовый пользовательский агент, такой как email, с http://www.cleancode.org/projects/email который изначально управляет вложениями

person Stephane Rouberol    schedule 13.08.2012

Наименее необходимое изменение в вашем сценарии оболочки будет

`uuencode /tmp/chart chart.html`

(обратные галочки для вставки командной подстановки uuencode в документ здесь).

person Armali    schedule 14.04.2014