首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中确定发送电子邮件的时区

如何在C#中确定发送电子邮件的时区
EN

Stack Overflow用户
提问于 2010-04-13 22:14:12
回答 2查看 5.3K关注 0票数 3

有没有人能推荐一种在C#中确定发送电子邮件的时区的方法?

查看电子邮件的标题信息包括以下信息:

代码语言:javascript
运行
复制
Received: from mail-ew0-f211.google.com (123.85.219.211) by UKExchange
 (10.1.10.99) with Microsoft SMTP Server id 1.2.345.6; Tue, 13 Apr 2010
 14:26:24 +0100
Received: by ewy3 with SMTP id 3so288857ewy.6        for
 <john.sibly@mycompany.com>; Tue, 13 Apr 2010 06:26:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.213.2 with HTTP; Tue, 13 Apr 2010 06:26:23 -0700 (PDT)
X-Originating-IP: [83.244.243.210]
Date: Tue, 13 Apr 2010 14:26:23 +0100
Received: by 10.103.3.17 with SMTP id f17mr3087878mui.123.1271165183473; Tue,
13 Apr 2010 06:26:23 -0700 (PDT)

有许多"Received: from“和"Received: by”键,并在末尾指示日期、时间和时区。

我应该尝试解析其中的哪一个?这是确定发送者时区的可靠方法,还是有人推荐更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-13 22:22:32

各种“接收的”条目是每个连续的服务器以相反的顺序接收电子邮件的时间(即,接收邮件的最后一个服务器在堆栈的顶部)。但是,这不是发送消息的日期,而是服务器接收消息的日期。

消息的撰写日期由" date“标头表示,该标头应该是唯一的。

因此,根据你到底想做什么,你应该采用最后的“接收”头(应该是根据第一个SMTP服务器发送邮件的日期)或“日期”头(这应该是用户按下“新邮件”或“回复”按钮的时间,并包含客户端的时区-假设您处理的是真正的客户端,而不是web邮件)。

如果您正在处理web邮件,那么时区的内容实际上可以是任何内容,从真正的原始用户TZ到web服务器设置的任何默认值。

票数 3
EN

Stack Overflow用户

发布于 2010-04-13 22:19:28

理论上,接收字段上的时间戳是准确的。以下是文档:

http://cr.yp.to/immhf/date.html#timestamp

唯一的问题是这一部分:

在实践中,

服务器将各种格式错误的信息放入接收的行中。对于读者来说,最好将最后一个分号之前的所有内容都视为非结构化文本,仅供人类使用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2630194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档