2013-12-06 6 views
5

Новое в unix и изучайте разговор и прогулку по нему. Я пишу сценарий в .ksh и имею требование отправить письмо с сообщением. В настоящее время с помощью этой команды в моем сценарии:как отправить сообщение с сообщением в скрипт unix

mailx -s"File not found" [email protected] 

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

ответ

1

, как mailx принимает тело в качестве входных данных на стандартный ввод вы можете направить тело к нему:

echo "Hello World" | mailx -s"File not found" [email protected] 

Или использовать here document

mailx -s"File not found" [email protected] << END_TEXT 
Hello World 
END_TEXT 
+0

Второй выглядит модно, я пробовал, но не работает для меня :( –

+0

Для 1 я использовал следующее: [email protected] echo «test» | mailx -s «test» $ mail_person теперь эта команда отправляет мне сообщение, но также добавляет его в/var/spool/mail в unix –

5

Попробуйте в командной строке или внутри сценарий:

echo "This is the message." | mailx -s "Subject" [email protected] 

Вы можете использовать заранее определенные сообщения из файлов:

cat message.txt | mailx -s "Subject" [email protected] 
+0

1-я один работает для меня, но когда я получаю свою почту, тело сообщения имеет « "в качестве пробной версии, которая не отображается в почте, но когда я ее получаю, вы получаете предварительный просмотр на панели задач прямо там, я вижу, что это не имеет значения, но было любопытно узнать, спасибо за помощь –

3

В качестве альтернативы mailx (упоминается в других ответах) вы также можете использовать Sendmail:

cat <<EOF | sendmail -t 
To: recipients-mailaddress 
From: your-mailaddress 
Subject: the-subject 
mailtext 
blabla 
. 
EOF 

Возможно, вам необходимо добавить полный путь к sendmail, если это не на вашем пути. Например./usr/sbin/sendmail или/usr/lib/sendmail.

Update:
Смотрите также это question

+1

naice! ! работает для меня спасибо –

0

Если вы хотите добавить вложение к вы хотите отправить. Здесь вы идете:

echo 'Type Message body' | mailx -s 'Type subject' -a path/filename.txt [email protected] 

Пример:

echo 'PFA report' | mailx -s 'Today's Report' -a `path`/report1306.txt [email protected] 
Смежные вопросы