将特殊字符传递到 telnet Unix
Passing Special Characters into telnet Unix
我使用以下命令通过 SMS 适配器发送 SMS 消息:
telnet localhost 0000 <<-EOF
helo x
MAIL FROM: Test
RCPT TO: 447999999999
DATA
Test £1234
.
logout
quit
EOF
然而,每当我收到消息时,它的格式都是:
Test ?£1234
追加 ?在 £ 符号的前面,我尝试研究了一些方法,包括 MIME,但不太确定它们是如何实现的。
关于如何停止并允许 £
成功传递的任何想法
在某些安装中,默认情况下 telnet 不是 8 位干净的(它不识别 8 位字符编码,例如 Unicode)。为了能够将 Unicode 击键发送到远程主机,您需要将 telnet 设置为 "outbinary" 模式。有两种方法可以做到这一点:
$ telnet -L <host>
和
$ telnet
telnet> set outbinary
telnet> open <host>
您是否尝试过先对邮件进行编码?您可以使用 UTF-8 字符集中的 base64 来执行此操作:-
例如
转变:
味精=“£1234”
到:
味精="wqMxMjM0"
注意:尝试使用在线转换器测试 encoding/decoding - https://www.base64encode.org/
对文本进行编码后,您可以通过在 telnet 中的 DATA 命令后添加 MIME 详细信息来通过 telnet 发送消息,方法是指定 MIME 类型,示例脚本如下:-
telnet localhost 0000 <<-EOF
helo x
MAIL FROM: Test
RCPT TO: 447999999999
DATA
Subject: Test
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
${msg}
.
logout
quit
EOF
希望对您有所帮助。
我使用以下命令通过 SMS 适配器发送 SMS 消息:
telnet localhost 0000 <<-EOF
helo x
MAIL FROM: Test
RCPT TO: 447999999999
DATA
Test £1234
.
logout
quit
EOF
然而,每当我收到消息时,它的格式都是:
Test ?£1234
追加 ?在 £ 符号的前面,我尝试研究了一些方法,包括 MIME,但不太确定它们是如何实现的。
关于如何停止并允许 £
成功传递的任何想法在某些安装中,默认情况下 telnet 不是 8 位干净的(它不识别 8 位字符编码,例如 Unicode)。为了能够将 Unicode 击键发送到远程主机,您需要将 telnet 设置为 "outbinary" 模式。有两种方法可以做到这一点:
$ telnet -L <host>
和
$ telnet
telnet> set outbinary
telnet> open <host>
您是否尝试过先对邮件进行编码?您可以使用 UTF-8 字符集中的 base64 来执行此操作:- 例如 转变: 味精=“£1234” 到: 味精="wqMxMjM0"
注意:尝试使用在线转换器测试 encoding/decoding - https://www.base64encode.org/
对文本进行编码后,您可以通过在 telnet 中的 DATA 命令后添加 MIME 详细信息来通过 telnet 发送消息,方法是指定 MIME 类型,示例脚本如下:-
telnet localhost 0000 <<-EOF
helo x
MAIL FROM: Test
RCPT TO: 447999999999
DATA
Subject: Test
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
${msg}
.
logout
quit
EOF
希望对您有所帮助。