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

时间:2021-06-16 11:06:57

标签: email tcp smtp port sendmail

我想使用 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\encrypted\2021_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\encrypted\2021_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

可能是什么问题?为什么单独运行良好,但从 bat 文件执行时出现错误?

1 个答案:

答案 0 :(得分:0)

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