繁体   English   中英

如何在mailx中插入姓名字段

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM