0

我有一个使用 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

到目前为止,这工作正常。

现在我创建一个配置文件如下:

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.

现在我无法理解为什么我会收到这个错误。即使我尝试回显 Values,它也会向我显示正确的值。那我在哪里做错了。?请帮忙。谢谢。

4

1 回答 1

2

注意到日志消息中浮动到行首的单引号了吗?您的数据文件可能包含\r\n换行符,这在 Unix 上效果不佳;回车被读取为主机名的一部分。运行dos2unix它。

于 2012-04-21T23:17:15.550 回答