繁体   English   中英

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

[英]how to send a mail with a message in unix script

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

    mailx -s"File not found" abc@def.com

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

echo 'Message body goes here' | mail -s 'subject line goes here' email@provider.com

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

echo "This is the message." | mailx -s "Subject" abc@def.com

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

cat message.txt | mailx -s "Subject" abc@def.com

另外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。

更新
另见这个问题

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

echo "Hello World" | mailx -s"File not found" abc@def.com

或者使用这里的文件

mailx -s"File not found" abc@def.com << END_TEXT
Hello World 
END_TEXT

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

echo 'Type Message body' | mailx -s 'Type subject' -a path/filename.txt email@provider.com

例:

echo 'PFA report' | mailx -s 'Today's Report' -a `path`/report1306.txt  xyz@gmail.com

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

mailx -s"File not found" abc@def.com < mailcontent

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM