gpt4 book ai didi

bash - Debian:使用 TCP 的 Bash 电子邮件

转载 作者:可可西里 更新时间:2023-11-01 02:52:00 31 4
gpt4 key购买 nike

在服务器上,我目前在使用 Swiftmailer 生成的日志中间歇性地收到“421 意外故障,请稍后再试”。

为了调试它,使用命令:

    openssl s_client -crlf -connect www.somesite:443

我可以成功发送邮件。

我想将所有谈判等放在 bash 脚本中,以便我重复运行它并查看是否有任何特定情况会引发 421 错误。

我遇到过几个使用语法的例子:

    exec $fd<>"/dev/tcp/${SERVER}/${PORT}"

然而,正如其他答案中所述,在构建 bash 时需要启用此功能,而 Debian 不启用此功能。

除了使用此设置(我认为是 --enable-net-redirections)重新编译 bash 之外,还有其他选择吗?

是否可以在 bash 脚本中以某种方式执行 openssl 命令并读取输出写入输入?例如

    exec $fd<>`openssl s_client -crlf -connect www.somesite:443`

最佳答案

好吧,我想我可以使用 expect 而不是 $fd<> 来做我想做的事情,所以处理原始邮件协商的脚本的相关部分变成了:

    expect <<- DONE
log_user 0
spawn -noecho openssl s_client -crlf -connect ${MailHost}:${MailPort}
expect {
"*220 *" {}
timeout { log_user 1; send_user "Invalid response from server\n"; exit 1}
}

send -- "EHLO ${MyHost}\r"
expect {
"250 *" {}
timeout { log_user 1; send_user "Handshake Failed\n"; exit 1}
}

send -- "AUTH LOGIN\r"
expect {
"334 VXNlcm5hbWU6" {}
timeout { log_user 1; send_user "Unexpected username prompt\n"; exit 1}
}

send -- "${AuthUser}\r"
expect {
"334 UGFzc3dvcmQ6" {}
"535 *" { log_user 1; send_user "535 Incorrect authentication data\n"; exit 1}
timeout { log_user 1; send_user "Unexpected password prompt\n"; exit 1}
}

send -- "${AuthPass}\r"
expect {
"*235 *" {}
timeout { log_user 1; send_user "Authentication Failed\n"; exit 1}
}

send -- "MAIL FROM:<${FromAddr}>\r"
expect {
"250 *" {}
timeout { log_user 1; send_user "Error setting From Address\n"; exit 1}
}

send -- "rcpt TO:<${ToAddr}>\r"
expect {
"250 *" {}
timeout { log_user 1; send_user "Error setting Recipient Address\n"; exit 1}
}

send -- "DATA\r"
expect {
"354 *" {}
timeout { log_user 1; send_user "Error setting Data\n"; exit 1}
}

send -- "Subject: ${Subject}\r\r${Message}\r\r.\r\r"
expect {
"250 *" {}
timeout { log_user 1; send_user "Error sending email\n"; exit 1}
}
DONE

关于bash - Debian:使用 TCP 的 Bash 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890674/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com