我使用以下命令通过SMS适配器发送SMS消息:
telnet localhost 0000 <<-EOF
helo x
MAIL FROM: Test
RCPT TO: 447999999999
DATA
Test £1234
.
logout
quit
EOF
然而,当我得到消息时,它将采用以下格式:
Test ?£1234
追加?在£符号的前面,我试过调查一些方法,包括MIME,但不太确定如何实现它们。
关于我如何能够阻止并允许成功传递英镑的任何想法
答案 0 :(得分:3)
您是否尝试过首先对邮件进行编码?您可以使用UTF-8字符集中的base64执行此操作: - 例如 兑换: MSG = “1234£” 至: MSG = “wqMxMjM0”
注意:尝试使用在线转换器测试编码/解码 - https://www.base64encode.org/
对文本进行编码后,您可以通过telnet发送消息,方法是在telnet中的DATA命令后添加MIME详细信息,方法是指定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
希望有所帮助。
答案 1 :(得分:1)
在某些安装中,默认情况下telnet不是8位清除(它不识别Unicode等8位字符编码)。为了能够将Unicode击键发送到远程主机,您需要将telnet设置为“outbinary”模式。有两种方法可以做到这一点:
$ telnet -L <host>
和
$ telnet
telnet> set outbinary
telnet> open <host>