QMQP: The Quick Mail Queuing Protocol
程序员文章站
2022-07-14 14:11:37
...
http://cyberdesk.com/wiki/qmail/qmqp
http://cr.yp.to/proto/netstrings.txt
QMQP 的基础是 netstring 格式。假设要把 hello world! 封装为 netstring 格式:
1)先得到这个字符串的长度,12
2)按如下的顺序把长度和内容拼接起来:长度,冒号,内容,逗号
按上面的步骤处理之后,结果如下
netstring 可以嵌套。多个 netstring 可以按顺序拼接起来,然后把这个拼接的结果作为一个待封装的内容,再次进行 netstring 封装。
从上面的内容可以看出,netstring 格式有些类似 TLV(Tag-Length-Value),但是没有用到 Tag 这一部分。
在 QMQP 协议中,协议的内容就是一个嵌套的 netstring 。这个嵌套的 netstring 中,包含了邮件内容,发件人,收件人列表。由于 netstring 没有用到 Tag ,因此协议内容中的 netstring 是根据顺序来表示含义的。第一个 netstring 是邮件内容,然后是发件人,接着是收件人列表。
http://cr.yp.to/proto/netstrings.txt
QMQP 的基础是 netstring 格式。假设要把 hello world! 封装为 netstring 格式:
1)先得到这个字符串的长度,12
2)按如下的顺序把长度和内容拼接起来:长度,冒号,内容,逗号
按上面的步骤处理之后,结果如下
netstring( hello world! ) = 12:hello world!,
netstring 可以嵌套。多个 netstring 可以按顺序拼接起来,然后把这个拼接的结果作为一个待封装的内容,再次进行 netstring 封装。
393:30:Message body...,15:Fsender_address...,26:Trecipient_address,,
从上面的内容可以看出,netstring 格式有些类似 TLV(Tag-Length-Value),但是没有用到 Tag 这一部分。
在 QMQP 协议中,协议的内容就是一个嵌套的 netstring 。这个嵌套的 netstring 中,包含了邮件内容,发件人,收件人列表。由于 netstring 没有用到 Tag ,因此协议内容中的 netstring 是根据顺序来表示含义的。第一个 netstring 是邮件内容,然后是发件人,接着是收件人列表。