【发布时间】:2013-10-02 19:11:50
【问题描述】:
我从某人那里接手了一个脚本,bash 脚本通常运行良好,但还没有完全完善。因此,一般来说,简单地说,它会向人们发送一封电子邮件报告,该报告是从文本文件中获取的。所以,问题是这样的。该文本文件中的每一行代表应通过电子邮件发送给用户的数据。该脚本对数据进行格式化,以便于阅读并发送电子邮件。发送电子邮件时,用户 1 的电子邮件中有 3 行,用户 2 的电子邮件中有 2 行。不错不错,效果很好。但是,它不是向用户 1 和用户 2 分别发送一封电子邮件,而是向用户 1 发送 3 封相同的电子邮件,向用户 2 发送相同的电子邮件 2。基本上复制了电子邮件。我想如果他们只收到 2 封电子邮件,这不是一个大问题,但是,如果他们有 20-30 行呢?他们可以收到 20-30 封相同的电子邮件。
Line1: User 1 UnitCost Total Cost RemainingBalance
Line2: User 1 UnitCost Total Cost RemainingBalance
Line3: User 1 UnitCost Total Cost RemainingBalance
Line4: User 2 UnitCost Total Cost RemainingBalance
Line5: User 2 UnitCost Total Cost RemainingBalance
所以,我想知道的是,这是发送电子邮件的线路:
printf "$USER\n$MESSAGE\n\n$DETAIL" | mailx -r admin@email.com -s
"Email for balance" "$EMAIL"
那么,有没有一种方法无需重写脚本就可以让 mailx 为每个收件人发送一封电子邮件?不知道这里最好的方法是什么。任何意见将不胜感激!
【问题讨论】:
-
您显示的行只发送一封电子邮件。你必须忘记那条线周围的循环