2016-04-02 1 views
1

Я использую Hadoop (CDH 5.4.8) для обработки неструктурированных данных, и после успешной обработки я хочу отправить уведомление в соответствующую группу с файлом журнала в виде вложения.Отправить электронное письмо с файлом журнала в качестве вложения

CDH 5.4.8 Oozie не поддерживает функцию вложения в действии электронной почты. Поэтому я хочу сделать это с помощью сценария оболочки. Пожалуйста, дайте мне знать, как это сделать.

ответ

0

Вы можете легко отправить электронное письмо из оболочки, отправив полное почтовое сообщение (заголовок и тело) в 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] 
+0

благодаря Diomidis, его прекрасно работать в локальном режиме. Теперь я хотел бы протестировать его в действии оболочки Oozie. –

+0

если у меня есть файл с именем "exmaple.csv". Мне нужно разместить это имя как в имени = "exmaple.csv", так и в filename = "exmaple.csv" ?? или что я должен писать в «данных». И в случае, если я пытаюсь отправить файл xlsx, как мне изменить Content-Type и другие параметры. Я действительно был бы признателен, если бы вы могли поделиться ссылкой или подобным с дополнительной информацией об этом. Спасибо –

+0

Я предлагаю вам отправить вложение себе через свой почтовый клиент, а затем посмотреть исходный код сообщения. –

 Смежные вопросы

  • Нет связанных вопросов^_^