我试图:
- 将多个文件附加到一封电子邮件中。
- 使用 Gmail 帐户发送电子邮件,并在主题标头中注明当前日期和时间。
我在 for 循环方面遇到问题,因为我不想创建多封电子邮件我只需创建一封包含所有附件的电子邮件和主题行中使用当前日期和时间。
#!/bin/bash
# to run type "bash email_live_listing.sh"
dt_now_start=`date +"%Y-%m-%d %T"`
fn_dt_now_start=`date '+%Y_%m_%d__%H_%M_%S'`; #use to generate file name with date
currentdir="$(pwd)" #get current directory
ls $currentdir/us*.pdf -tp | grep -v '/$fn_pdf' #place files into variable
echo "$fn_pdf"
ITER=0
for t in ${fn_pdf[@]}; do
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au [email protected] -ap password --header "Subject: Updated file ${fn_dt_now_start}" --body "Email Text" --attach-type ./${fn_pdf} -S 2
let ITER+=1 #increment number
done
PS:我使用的是Ubuntu斯瓦克斯因为它结构紧凑、重量轻,并且将从树莓派运行,但我愿意尝试其他选择。
答案1
这是一个 bash 脚本,可能会帮助其他人解决我开始工作的问题。
#!/bin/bash
currentdir="$(pwd)" #get current directory
fn_dt_now_start=`date '+%Y_%m_%d__%H_%M_%S'`; #use to generate date time
fn_txt=$(ls $currentdir/*.txt) #place txt files found into a variable
for t in ${fn_txt[@]}; do
attach_files="${attach_files} --attach-type ${t}" #will build list of files to attach
done
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au [email protected] -ap <email_sending_from_password>] --header "Subject: Listings - ${fn_dt_now_start}" --body "Listings Email Text" ${attach_files} -S 2