1

Django/Python で GMail メール インターフェイスを作成しています。件名と日付、一種の概要レベルのインデックスを含むすべてのメールのスケルトンを作成して、メールが削除された場合でも、メールが存在し、いつ送信されたかを示すインジケーターを作成したいと考えています。

私の問題は、IMAP UID が変更されたことを考慮して、一意の電子メール識別子として何を使用できるかということです。データベースに一意の ID を持つ各電子メールのスケルトンを作成しても、それに電子メールの UID と IMAP フォルダ名を関連付けると、他の電子メールが削除されると UID が変わる可能性があります。

電子メールの一意の識別子を作成するための最良のソリューションは何ですか? (送信日、件名)の組み合わせを考えていたのですが、もっとシンプルなものを探していました。

誰か助けてくれませんか?

ありがとうございました

4

2 に答える 2

1

私の理解では、UIDは変更されないということです...したがって、それをIMAP/DB間のリンクとして使用しても問題ありません。

RFC3501 から (RFC822 を更新) - http://www.limilabs.com/mail/rfc/3501

2.3.1.1. 一意識別子 (UID) メッセージ属性

各メッセージに割り当てられた 32 ビットの値。
一意の識別子の有効値 (以下を参照) と共に使用すると、64 ビットの値が形成され、メールボックス内の他のメッセージまたは 同じ名前の後続のメールボックスを永久に
参照してはなりません。
一意の識別子
は、メールボックス内で厳密に昇順で割り当てられます。各
メッセージがメールボックスに追加されると、以前に追加されたメッセージよりも高い UID が割り当てられ
ます。メッセージ シーケンス
番号とは異なり、一意の識別子は必ずしも連続しているわけではありません。

メッセージの一意の識別子は、セッション中に変更してはならず、
セッション間で変更するべきではありません。
セッション間の一意の識別子の変更は、
以下で説明する UIDVALIDITY メカニズムを使用して検出可能でなければなりません。

于 2012-11-27T22:48:23.550 に答える