如何在unix脚本中发送带有消息的邮件

问题描述 投票:5回答:6

unix的新手,学习谈话和走路吧。我正在.ksh中编写一个脚本,并要求发送带有消息的邮件。目前在我的脚本中使用此命令:

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

此命令可帮助我获得主题和收件人姓名。我的问题是如何与它一起写一条消息。因为每次我运行脚本它暂停并要求我输入消息然后执行,我想预先包含消息,以便脚本不会暂停。

linux email unix ksh
6个回答
7
投票
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]

5
投票

在命令行或脚本内部尝试:

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

您可以使用来自文件的预定义消息:

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

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。

更新: 另见question


2
投票

因为mailx将正文作为stdin的输入,你可以将正文传递给它:

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
投票

如果您还想要添加要发送的附件。干得好:

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]

0
投票

事先定义mailcontent并按照以下方式执行:

mailx -s"File not found" [email protected] < mailcontent
© www.soinside.com 2019 - 2024. All rights reserved.