最近我碰到了这样一个情况:需要跟踪对源自本地的邮件的答复回邮。如果我们自动向用户发送邮件,而用户对某一封特定的邮件进行了回复,那我们怎样才能知道这个用户到底是对那一封进行的回复呢?
可以在邮件的主题或内容中插入一个标示符,但是用户可以清空这些区域。另一个可选择的办法是RFC 822,它会为Internet消息定义一个题头信息列表,包括MESSAGE-ID和IN-REPLY-TO。如果能够在MESSAGE-ID中提供源邮件的有用的信息,那么答复就会在IN-REPLY-TO标题中包含这个信息。最然如此,CDONTS却不让你修改这种题头信息。这意味着我们必须自己修改它。
一个修改这种标题信息的简单方法是通过直接SMTP。一个普通的SMTP session例子如下所示:
220 REMOTE.SERVER Simple Mail Transfer Service Ready
HELO LOCAL.SERVER
250 REMOTE.SERVER
MAIL FROM:johndoe@remote.server
250 OK
RCPT TO:janedoe@remote.server
250 OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
To: janedoe@remote.server
From: johndoe@remote.server
Message-ID: oicu812
这是消息的内容。
250 OK
QUIT
221 REMOTE.SERVER Service closing transmission channel