【问题标题】:How to add receiver name in mailx command [duplicate]如何在mailx命令中添加接收者名称[重复]
【发布时间】:2019-12-28 10:35:54
【问题描述】:

我的示例数据文件是

$ cat /fullpath/a.csv
a@gmail.com, Amit Singh
k@gmail.com, Km 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/a.csv

当我发送电子邮件时,一切顺利。但不会在"$name&lt;$email&gt;" 中选择接收者名称

那里的接收者名称的正确语法如何?

【问题讨论】:

  • 当我尝试编辑时出现完整错误,它显示“看起来您的帖子主要是代码;请添加更多详细信息。”
  • 最后几行错误 > 250 2.1.0 OK g25sm13460353otr.8 - gsmtp >>> RCPT TO: 553 5.1.3 收件人地址 不是有效的 RFC-5321地址。 g25sm13460353otr.8 - gsmtp smtp-server: 553 5.1.3 收件人地址 不是有效的 RFC-5321 地址。 g25sm13460353otr.8 - gsmtp“/home/whoisdat/dead.letter”28/863。 . .消息未发送。
  • 您的示例在任何地方都不包含 Amit,因此我们很难将这些点联系起来。您提供的详细信息似乎也无法重现您的问题,这是帖子被关闭的另一个常见原因。
  • 您需要添加足够的文字来解释您添加的代码以平衡事情。在最坏的情况下,您可以在 pastebin.com 等外部网站上存储一条冗长的错误消息,并说明您的低声誉使您无法在问题本身中提供它。
  • 另外,可能会花更多时间在help center 上了解该网站的运作方式,像您这样的普通用户如何与像 Ed 和我这样的高级用户有同样的任务来帮助管理这个网站,如何关闭作为副本是正确的做法,以及如果您真的认为犯了错误,如何正确寻求更正。 (提示:不是人身攻击。)

标签: linux bash awk sed


【解决方案1】:

正确的格式应该在真实姓名和电子邮件终端之间有一个空格;但我认为mailx 不会在命令行上接受这个,或者至少不会在To: 标头中公开它。试试这个:

echo "To: $name <$email>" |
mailx ... options ... "$email"

你一直在使用IFS,为什么不完全使用它呢?

while IFS=, read -r email name; do ...

也许更好的设计仍然是不使用逗号作为分隔符。

【讨论】:

  • 它显示到:包含无效字符':'
  • 当我删除时:它显示 >>> RCPT TO: 553 5.1.3 收件人地址 不是有效的 RFC-5321 地址。 r17sm13058697otq.70 - gsmtp
  • 然后$email 不知何故最终不包含实际的电子邮件地址。您的示例不包含“Amit”,但我猜您有一个类似 Amit, amit@gmail.com 的条目,其中的字段顺序错误;或者你以某种方式混淆了变量。
【解决方案2】:

您已使用“##”注释掉包含接收者名称的命令部分:

-S  smtp-auth-password=xxxxpassword##

如果您需要密码以# 结尾,请将参数放在引号中。

另外,我会在个人姓名后加一个空格,即$name &lt;$email&gt;。我不确定这是必需的还是通常以这种方式完成。

除此之外,我建议在测试您的脚本时,在打开set -x 的情况下运行它,这样您就可以准确地看到将传递给mailx 的内容。这也将捕获$email 不正确的情况。

【讨论】:

  • ## 我只是输入密码的一部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
相关资源
最近更新 更多