尝试使用 sendEmail 发送电子邮件时出错

Error when try to send email with sendEmail

我想使用 sendEmail 发送自动电子邮件。 如果我 运行 以下行单独工作:

sendemail.exe -f "payslip@dgroup.com" -t "dn.john@dgroup.com" -u "Payslip: DN JOHN, marca 1567, may 2021" -o message-file=mail_body_payslip.txt -o tls=no -o username="payslip@dgroup.com" -o password="hfsjfb&^%"  -s webmail.dgroup.com:26 -o timeout=5 -xu payslip@dgroup.com -xp hfsjfb&^% -a "C:\Payslips\encrypted21_05_1702_DN_JOHN.pdf" -l email_log.txt

但是,如果我尝试从 bat 文件 运行 它不起作用。 这是 bat 文件:

@echo.
@echo.
echo Starting email session... >> email_log.txt
date /t >> email_log.txt
time /t >> email_log.txt
@echo.
@echo Verifying files...


@echo.
@echo Sending mails...
sendemail.exe -f "payslip@dgroup.com" -t "dn.john@dgroup.com" -u "Payslip: DN JOHN, marca 1567, may 2021" -o message-file=mail_body_payslip.txt -o tls=no -o username="payslip@dgroup.com" -o password="hfsjfb&^%"  -s webmail.dgroup.com:26 -o timeout=5 -xu payslip@dgroup.com -xp hfsjfb&^% -a "C:\Payslips\encrypted21_05_1702_DN_JOHN.pdf" -l email_log.txt

@echo.
@echo.
@echo Payslip was sent. Verify email_log.txt
@echo.
@pause

当我 运行 bat 文件时,出现以下错误:

Jun 16 14:01:55 srv3 sendemail.exe[2532]: ERROR => Connection attempt to localhost:25 failed: IO::Socket::INET: connect: Unknown error

如果我 运行 telnet localhost:25 我明白了:

Could not open connection to the host, on port 23: Connect failed

可能是什么问题?为什么 运行ning 单独运行正常,但从 bat 文件执行却出现错误?

我找到问题了。 当您 运行 bat 文件时,密码中的“%”字符被替换为“26”,因此密码不正确。 解决方案是使用 %% 而不是 %。 两个 %% 等于一个 %.