[英]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.