[英]How to insert name field in mailx
我的示例數據文件是
$ cat /fullpath/myfile.csv
a@gmail.com, A Singh
k@gmail.com, K Singh
我正在使用 script.sh
#!/bin/bash
while IFS= read -r line
do
email=$(echo $line | awk -F, '{print $1 }')
name=$(echo $line | awk -F, '{print $2 }')
echo | mailx -v -s "Helo $name" -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://smtp.gmail.com:587 -S from="xxxx@gmail.com(John Smith)" -S smtp-auth-user=xxxx@gmail.com -S smtp-auth-password=xxxxpassword -S ssl-verify=ignore -S nss-config-dir=~/.certs "$name<$email>"
done < /fullpath/myfile.csv
添加接收者名稱的正確語法是什么
我正在尋找我在下面嘗試過的找不到的語法
"$name<$email>"
$name<$email>
-S to:"$name<$email>"
-S To:"$name<$email>"
-S To: "$name <$email>"
-S To: $name <$email>
它選擇名稱( A Singh
)作為電子郵件並說無效的電子郵件。 如果我使用 To,它會選擇 TO 作為電子郵件。 即在certs
代碼圖片作為電子郵件之后出現的任何內容。
根據標准文檔,mailx 似乎不支持 -S 選項,但某些系統可能會添加此選項。
我建議您使用GNU Mailutils 。
要指定“FROM”名稱和地址,可以使用“-a”選項。
-a 標題:值
--append=header:value
Append the given header to the composed message.
要指定收件人姓名和地址,就像您所做的那樣,在命令末尾添加姓名和電子郵件即可完成工作。
#!/bin/bash
while IFS= read -r line
do
email=$(echo $line | awk -F, '{print $1 }')
name=$(echo $line | awk -F, '{print $2 }')
mail -s "Hello $name" -a "From: John Smith<xxxx@gmail.com>" "$name<$email>"
#echo | mailx -v -s "Helo $name" -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://smtp.gmail.com:587 -S from="xxxx@gmail.com(John Smith)" -S smtp-auth-user=xxxx@gmail.com -S smtp-auth-password=xxxxpassword## -S ssl-verify=ignore -S nss-config-dir=~/.certs "$name<$email>"
done < ./myfile.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.