如何在Linux中从文件发送带有特定模板的邮件给用户(模板包含来自文件的信息)



基本上,我需要从一个文件中获取姓,姓,用户名和年级然后我需要向该用户('username')发送一封电子邮件,看起来像这样:

"亲爱的'姓' '姓'!
你在"班级名称"考试中的成绩是"grade"。"

"类名"是通过shell的参数列表给出的,其余的信息在该文件中。

所以我一步一步地走。首先用awk打印出所需的布局

awk '{print  "Dear",$1,$2 "!","nYour grade on the '$class' exam was ",$4;}' in.txt

工作好。然后我测试了我的邮件是否有效,它确实有效:

$ mail -s 'Subj' bando < /tmp/msg.txt

所以我需要把我的输出写入一个文本文件,这样我就可以把它发送给特定的用户。

这就是我的问题出现的地方。我试过几个版本,试着打印我的字符串到一个文件,但有一些问题,我不知道什么。echo和cat也是一样。我试着把它切成小块,但还是没有。

试试这个awk命令从in.txt中读取并发送电子邮件:

class='9th'
awk '{msg="Dear " $1 " " $2 "!,nYour grade on the '$class' exam was " $4; system("echo "" msg "" | mail -s 'Subj' " $3);}' in.txt

当你的in.txt文件看起来像这样:

cat in.txt
Lname Fname foobar@example.com 7.6

解释:

awk命令将in.txt文件解析为$1,$2,$3,$4占位符。

然后在变量msg中格式化邮件消息。

最后调用系统函数执行echo "<msg>" | mail -s 'Subj' $3回显msg变量,并将其管道到邮件命令发送。这里需要使用反斜杠将msg变量用双引号括起来。

相关内容

  • 没有找到相关文章

最新更新