Вы можете легко отправить электронное письмо из оболочки, отправив полное почтовое сообщение (заголовок и тело) в sendmail. Это предполагает, что хост, который вы делаете, правильно настроен с помощью агента передачи почты (например, sendmail или postfix) для отправки сообщений электронной почты.
Самый простой способ для отправки электронной почты с вложением, чтобы создать простой шаблон сообщения в вашей почте агента пользователя (например, Thunderbird), и скопируйте его содержимое в качестве шаблона с просмотреть исходный команды. Измените этот шаблон в соответствии с вашими потребностями и поместите его в сценарий оболочки.
Вот пример:
#!/bin/sh
cat <<\EOF |
To: Ramesh <[email protected]>
From: Diomidis Spinellis <[email protected]>
Subject: Here are your Hadoop results
Message-ID: <[email protected]>
Date: Sun, 3 Apr 2016 09:58:48 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="------------030303090406090809090501"
This is a multi-part message in MIME format.
--------------030303090406090809090501
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
The attachment contains your Hadoop results.
--------------030303090406090809090501
Content-Type: application/octet-stream;
name="data"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="data"
HviDNR105+2Tr0+0fsx3OyzNueQqPuAXl9IUrafOi7Y=
--------------030303090406090809090501--
EOF
sendmail [email protected]
Чтобы настроить фиксированное сообщение с фактическими данными, замените детали, которые вы хотите изменить с помощью команд, которые генерируют их. (Обратите внимание на недостающую обратную косую черту от сюда документ EOF
маркер.)
#!/bin/sh
cat <<EOF |
To: Ramesh <[email protected]>
From: Diomidis Spinellis <[email protected]>
Subject: Here are your Hadoop results
Message-ID: <[email protected]>
Date: $(date -R)
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="------------030303090406090809090501"
This is a multi-part message in MIME format.
--------------030303090406090809090501
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
The attachment contains your Hadoop results.
--------------030303090406090809090501
Content-Type: application/octet-stream;
name="data"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="data"
$(base64 binary-data-file.dat)
--------------030303090406090809090501--
EOF
sendmail [email protected]
благодаря Diomidis, его прекрасно работать в локальном режиме. Теперь я хотел бы протестировать его в действии оболочки Oozie. –
если у меня есть файл с именем "exmaple.csv". Мне нужно разместить это имя как в имени = "exmaple.csv", так и в filename = "exmaple.csv" ?? или что я должен писать в «данных». И в случае, если я пытаюсь отправить файл xlsx, как мне изменить Content-Type и другие параметры. Я действительно был бы признателен, если бы вы могли поделиться ссылкой или подобным с дополнительной информацией об этом. Спасибо –
Я предлагаю вам отправить вложение себе через свой почтовый клиент, а затем посмотреть исходный код сообщения. –