#linux #bash #shell #email
#linux #bash #оболочка #Адрес электронной почты
Вопрос:
У меня есть выходной файл с именем result из скрипта, как показано ниже:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
И я использовал приведенную ниже команду столбца, чтобы получить вывод в последовательности, как показано ниже:
column -t -s " " result > result_new
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
И после отправки файла result_new на почту с помощью приведенной ниже команды mail, как в приведенном ниже сценарии, я не получаю ожидаемый результат.
#!/bin/bash
mail -s "COLUMN CHECK_1" name@gmail.com < result_new
Я получаю этот вывод по почте:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
Мой ожидаемый результат в mail должен быть таким:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
Может кто-нибудь сказать мне, что мне здесь делать?
Комментарии:
1. что вы подразумеваете под » не получением ожидаемого результата «? вы получаете сообщение об ошибке (и если да, то какую ошибку)? отправляется ли электронное письмо? если электронное письмо отправляется, есть ли проблема с содержимым электронного письма (и если да, ТО В ЧЕМ проблема)?
2. @markp-fuso Как показано выше, мне не хватает ожидаемого результата
Ответ №1:
Я предполагаю, что проблема связана с (получающим) почтовым клиентом и что он отображает сообщение с использованием шрифта переменной ширины (например, пробелы не такие широкие, как буквы); чтобы обойти эту проблему, я могу придумать пару вариантов:
- отправьте выходные данные в виде вложения текстового файла ascii (пользователю потребуется открыть вложение с помощью программы чтения текста ascii — например,
vim
,notepad
, и т. Д.) - отформатируйте исходящее электронное письмо (например,
MIME 'text/html'
), чтобы (принимающий) почтовый клиент знал, что содержимое должно отображаться в виде текста фиксированной ширины (хотя на этом этапе вам теперь нужно посмотреть свои варианты на отправляющей стороне относительно того, как отправить такое форматированное электронное письмо — например,sendmail
,mailx
,mutt
, что бы ниmail
указывало нав вашей системе и т. Д.; Это также предполагает, что (принимающий) почтовый клиент способен отображатьMIME
закодированные сообщения)
Один простой sendmail
пример, который я использовал при отправке электронных писем (из linux пользователям Windows / Mac), где я хочу, чтобы содержимое электронного письма отображалось в виде текста фиксированной ширины:
$ subject="this is the subject of my email"
$ emlist="list_of_email_addresses"
$ mailfile=$(mktemp)
$ echo "Subject: ${subject}
MIME-Version: 1.0
Content-Type: text/html
<html><body><pre>" > "${mailfile}"
cat result_new >> "${mailfile}"
echo "</pre></body></html>" >> "${mailfile}"
$ cat ${mailfile} | /usr/sbin/sendmail ${emlist}
$ 'rm' -rf "${mailfile}"
Если у вас нет доступа к sendmail
then, вам может потребоваться выполнить некоторое тестирование с помощью вашей почтовой (отправляющей) программы, чтобы узнать, как отправить MIME
закодированное сообщение…