使用 CURL 发送电子邮件:出现一些中文字符

使用 CURL 发送电子邮件:出现一些中文字符

我正在使用 SMTP 和 CURL 通过 TOR 发送一些电子邮件,但遇到一个问题:我收到的一些中文字符比我应该收到的多,有什么想法吗?

这是我使用批处理脚本发送邮件的方式(我有一个文件变量):

curl.exe --socks5-hostname 127.0.0.1:9050 smtp://onionaddre.onion:port --mail-from [email protected] --mail-rcpt [email protected] --user [email protected]:password --upload-file %filetosend%

以下是原始消息:

0asf345£%$&fdasdhhs#@deadfga

这是我得到的:

聣聭聤聭聯聶聥耠職聮聯職耠職聩聢聴聹耠聣聬聩耍耛聳聢耍聲

答案1

这还不是一个真正的答案,但可能有帮助,并且不适合放在评论部分。

如果你仔细观察汉字,你会发现大多数汉字的左侧都有一个类似的东西(部首)。这通常意味着它们具有非常相似的代码点。

$ perl -e 'use utf8; $foo = "聣聭聤聭聯聶聥耠職聮聯職耠職聩聢聴聹耠聣聬聩耍耛聳聢耍聲"; while ($foo =~ s/^(.)//) { printf("%04x\n", ord($1)) }'
8063
806d
8064
806d
806f
8076
8065
8020
8077
806e
806f
8077
8020
8077
8069
8062
8074
8079
8020
8063
806c
8069
800d
801b
8073
8062
800d
8072

如果我们去掉80s,我们就会得到纯 ASCII:

$ perl -e 'print "\x63\x6d\x64\x6d\x6f\x76\x65\x20\x77\x6e\x6f\x77\x20\x77\x69\x62\x74\x79\x20\x63\x6c\x69\x0d\x1b\x73\x62\x0d\x72\n"'
rmdmove wnow wibty cli

我无法理解那段文字的意义,但也许你可以。

答案2

从评论来看,您上传的文件是由另一个用于if ($success) { [System.IO.File]::AppendAllText($Path, $myvalue, [System.Text.Encoding]::Unicode)将内容保存到磁盘的 Powershell 脚本创建的。

使用字符编码 UTF8 保存文件应该可以解决问题,因此请将其替换[System.Text.Encoding]::Unicode[System.Text.Encoding]::UTF8

相关内容