我在 mysql 数据库中有一个名为 student 的表。此表包含名为 email 的列。
我使用以下命令向特定学生发送电子邮件,由 pid 标识:
$email=$(mysql --login-path=local --database=ccps -ss -e "select email from student where pid=132054");
echo "This is sample mail" | mail -s "Test" $email
我想知道如何向数据库中的每个学生发送电子邮件。由于我不知道如何在列电子邮件上使用循环。
谢谢。
答案 0 :(得分:1)
对于游戏,这样的事情对你有用。但是有更好的方法可以做到这一点。
read -ra student_emails <<< $(mysql --login-path=local --database=ccps -ss \
-e "select email from student order by pid;")
for email in ${student_emails[@]}
do
echo "This is sample mail" | mail -s "Test" ${email[0]}
done
答案 1 :(得分:0)
我能想到的最直接的方式是:
for email in `mysql --login-path=local --database=ccps -ss -e "select email from student order by pid;"`
do
echo "This is sample mail" | mail -s "Test" $email
done
如果您之前没有遇到过它们,那么在mysql之前和命令末尾的引号都是左手引号,而不是通常的单引号。正如之前的评论所说,像PHP这样的东西可以更好/更容易地构建更复杂的电子邮件。