我有一个使用sendEmail(CentOS shell)发送电子邮件的脚本 脚本是:
sendEmail -vvv -u "TestCompany, Inc.: USB Added" -f user@domain.com -t To@domain.com -s ASPMX.L.GOOGLE.com -m "USB Activity" -o tls=aut
o username=user3@domain.com password=password
到目前为止一切正常。
现在我按如下方式创建一个ConfigFile:
Company=TestCompany, Inc.
FromEmail=user@domain.com
Password=password
ToEmail=To@domain.com
Smtp=ASPMX.L.GOOGLE.com
现在我修改我的脚本如下:
#!/bin/sh
i=1;
while IFS="=" read VAR VALUE
do
VAR="${VAR// }"
Values[$i]=${VALUE}
let i++;
done < ConfigFile
sendEmail -vvv -u "${Values[1]}: USB Added" -f ${Values[2]} -t ${Values[4]} -s ${Values[5]} -m "Test Email" -o tls=auto username=${Values[2
]} password=${Values[3]}
我收到以下错误:
'25 failed: IO::Socket::INET: Bad hostname 'ASPMX.L.GOOGLE.comempt to ASPMX.L.GOOGLE.com
Apr 21 12:11:35 box2 sendEmail[26378]: HINT => Try specifying a different mail relay with the -s option.
现在我无法理解为什么我会收到此错误。即使我尝试回显值,它也会显示正确的值。然后我在做错了。?请帮忙。感谢。
答案 0 :(得分:2)
注意浮动到日志消息中行开头的单引号?您的数据文件的换行符可能为\r\n
,但在Unix上运行效果不佳;回车被读作主机名的一部分。在其上运行dos2unix
。