我正在写一个回复电子邮件的程序。原来的邮件可能已经是回复了。我该如何处理这个问题?
我见过使用的一切都在冒号之前的方法。这可能会影响re[2]:
。如果使用冒号方法。回复将变成Re:
,另一方的计算机将失去计数。
如果不是,则回复将变为Re: re[2]
,那么下一个回复将变为re[4]
。
但是冒号方法在您输入Resending:
而下一个回复将变为Re:
的情况下是有用的。
你对此有意见吗?是否有一个标准或通用的方法来做到这一点?
(在没有上下文的情况下,很难给出一个具体的答案——你可能想在你的问题中提供更多的信息)
大多数体面的邮件用户代理(MUA)使用In-Reply-To:
报头来指示消息线程,而不诉诸于解析Subject:
报头这样的不安全操作。大多数这样的客户端也有一个适当的线程模式,这样不寻常的东西,如Re[2]:
是最好的不必要的。使用Re:
的事实标准是简洁和内容之间的一个很好的折衷,但如果有适当的线程支持,它最终会归结为美观。
-
只需在您自己创建的消息中使用
Re:
-其他任何内容都必然会导致混乱。确保您正确地为任何回复消息生成In-Reply-To:
头。 -
请不要从
Subject:
标题中删除内容。例如,当一个适当的Re:
子字符串已经存在时,您可以避免添加它,但如果您实际删除字符串,您一定会出错,导致混乱的情况。 -
这不是一个严格的技术问题-不同的人有不同的偏好。在特定的社区中,例如邮件列表,社会自动化(原文如此)将处理任何使用奇怪或令人困惑的约定的惯犯。
-
试图自动处理这个问题必然会引起比它能解决的更多的问题。这些问题也不是承运人的责任,即邮寄系统。保持系统简单,关注真正的技术问题。
客户端(或用户)崩溃的一个常见情况是Re:
雪崩情况:
Subject: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: What about that thing we were talking about?
很诱人吧?MTA中的一个简单的过滤规则,或者应答MUA中的几行代码,雪崩就会被一个漂亮的单个 Re:
自动取代!
在我看来,这是一个应该抵制诱惑的例子:
不能保证MTA是特定消息使用的唯一路径。例如,当一些用户回复邮件列表消息时,他们既回复邮件列表又直接回复发布者。很自然,海报会同时收到这两条信息,很可能是通过完全不同的途径。
你知道用两个不同的主题收到相同的信息是多么令人困惑吗?即使是基本的按主题分类也会失败。在我看来,即使垃圾邮件检测系统将
[SPAM]
,**SPAM**
,$P@M
或其他任何内容添加到主题中也是在推动它。你能想象一个图书馆根据某种地方政策有选择地改变图书的标题吗?
即使你的MUA"修复"了这个问题,其他人仍然会使用旧的主题,除了回复你的时候。而且,您只是单方面地创建了一个看起来像是新线程的东西。适当的邮件客户机仍然可以正确显示线程,但是视觉效果令人困惑。毕竟,你确实从你的回复帖子中删除了这个帖子的一个非常明显的特征,不是吗?
我实际上记得几个有趣的线程,
Re:
雪崩在他们的主题中是一个半开玩笑的讨论的一部分。你怎么会想错过呢?
当然,人们使用破碎的客户端。或者他们自己也坏了。如果有人让真的出格,可以单独处理。只是不要使问题复杂化,不要单独留下我们的Subject:
头。好吗?很好吗?