unix的新手,学习谈话和走路吧。我正在.ksh中编写一个脚本,并要求发送带有消息的邮件。目前在我的脚本中使用此命令:
mailx -s"File not found" [email protected]
此命令可帮助我获得主题和收件人姓名。我的问题是如何与它一起写一条消息。因为每次我运行脚本它暂停并要求我输入消息然后执行,我想预先包含消息,以便脚本不会暂停。
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]
在命令行或脚本内部尝试:
echo "This is the message." | mailx -s "Subject" [email protected]
您可以使用来自文件的预定义消息:
cat message.txt | mailx -s "Subject" [email protected]
另外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
因为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
如果您还想要添加要发送的附件。干得好:
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]
事先定义mailcontent并按照以下方式执行:
mailx -s"File not found" [email protected] < mailcontent