我想使用 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 文件执行时出现错误?
答案 0 :(得分:0)
我发现了问题。 当您运行 bat 文件时,密码中的“%”字符被替换为“26”,因此密码不正确。 解决方案是使用 %% 而不是 %。 两个 %% 等于一个 %。