标签: rfc5322

每个收件人的"邮件ID"电子邮件标头是唯一的吗?

电子邮件的邮件ID标题有多独特?如果我向两个人发送电子邮件,两者是否都有相同的消息ID?或者他们会不同?

(这假设没有人做任何有趣的事情.我知道垃圾邮件,所有的规则都在窗外......)

email rfc5322

41
推荐指数
2
解决办法
5万
查看次数

电子邮件标题区分大小写?

电子邮件标题区分大小写?

例如,Content-Type不同于Content-type

根据RFC 5322,我没有看到任何关于区分大小写的内容.但是,我发现使用PEAR Mail_mime模块创建MIME消息时出现问题,而且所有内容都指向我们的SMTP服务器使用Content-typeMIME-version不是Content-TypeMIME-Version.我尝试使用另一台SMTP服务器(如GMail),但不幸的是我们的网络服务器非常紧密.

email header case-sensitive rfc5322

33
推荐指数
1
解决办法
5461
查看次数

通过电子邮件解析带有时区的日期?

我正在尝试从电子邮件中检索日期.起初它很容易:

message = email.parser.Parser().parse(file)
date = message['Date']
print date
Run Code Online (Sandbox Code Playgroud)

我收到:

'Mon, 16 Nov 2009 13:32:02 +0100'
Run Code Online (Sandbox Code Playgroud)

但我需要一个不错的日期时间对象,所以我使用:

datetime.strptime('Mon, 16 Nov 2009 13:32:02 +0100', '%a, %d %b %Y %H:%M:%S %Z')
Run Code Online (Sandbox Code Playgroud)

提升了ValueError, since %Z isn't format for +0100.但我在文档中找不到适当的时区格式,只有这个%Z区域.有人可以帮助我吗?

python format timezone datetime rfc5322

31
推荐指数
4
解决办法
2万
查看次数

电子邮件线程中自定义标头的持久性

我这可能是一个奇怪的问题,但我想我会继续问问.说,我通过特殊客户端使用IMAP SMTP 发送电子邮件.此客户端在发送电子邮件之前会向电子邮件中添加一些自定义标头.收件人收到此电子邮件并直接回复我(也可能是CC的一些人).

我的问题是:鉴于上面的例子,这些X-header是否会在线程中的所有新消息中持续存在?

我能想到的一件事是客户端会知道它发送的原始电子邮件.对此电子邮件的所有后续回复都将有一个"回复"标题,其值等于上一封电子邮件的"Message-Id".在看到客户端发送的原始邮件之前,我不明白为什么我无法抓取这些回复帖子,从而导出原始的自定义标头.

也许我在想这个.有什么建议?:)

email header rfc5322

18
推荐指数
2
解决办法
7613
查看次数

在Rails3/ActionMailer中设置Message-ID邮件头

我想改变Message-ID使用ActionMailer从Ruby on Rails v3应用程序发送的电子邮件的标题部分中的标题.

我在localhost上使用Sendmail进行邮件传递.

我在Sendmail或ActionMailer中配置它吗?

我在哪里配置它(如果它是ActionMailer):文件config/夹中的文件或app/mailers /文件夹中的文件?

actionmailer email-headers ruby-on-rails-3 rfc5322

14
推荐指数
4
解决办法
7166
查看次数

国际字符(例如变音字符)是否在电子邮件地址的本地部分有效?

德语变音符号(ä,ö,ü)和sz字符(ß)是否在电子邮件地址的本地部分有效?

例如,请使用此电子邮件地址: björn.nußbaum@trouble.org

RFC 5322非常清楚地说,不允许使用变音符号(以及其他国际字符).如果我看一下第3.4.1章,关于本地部分有如下内容: local-part = dot-atom / quoted-string / obs-local-part 那是什么意思dot-atom?它在第3.2.3章中描述:嗯,长话短说:Printable US-ASCII characters not including specials

所以在整个RFC 5322中我看不到任何有关国际字符的内容.或者RFC 5322已经过时了?(RFC 822 - > RFC 2822 - > RFC 5322)

更新: 对我来说重点是:目前的标准什么?允许或不允许国际字符? RFC 5322标记为DRAFT STANDARD.所以我认为这是最新的依赖来源,不是吗?

Efran提到,RFC 5336允许使用国际字符.但RFC 5336被标记为实验,所以这对我来说并不重要.

email email-address email-validation rfc5322

14
推荐指数
1
解决办法
2万
查看次数

是否有"无回复"电子邮件标题?

我经常看到自动电子邮件后缀有一条消息

亚马逊:

*请注意:此电子邮件是从无法接收传入电子邮件的地址发送的.如果您需要再次就此问题与我们联系,请使用上面的链接.

推特:

请不要回复这个信息; 它是从一个不受监控的电子邮件地址发送的.此消息是与您使用Twitter相关的服务电子邮件.

Google Checkout:

需要帮忙?访问Google Checkout帮助中心.请不要回复这个信息.

直接在此警告下方,Gmail会向我显示回复输入字段.在我看来,应该有一些标题可以附加到这样的自动电子邮件,告诉收件人的电子邮件客户端不允许回复.

有这样的标题吗?如果没有,控制电子邮件格式的团体是否曾经讨论过它?

email rfc822 rfc2822 rfc5322

11
推荐指数
2
解决办法
1万
查看次数

从历史上看,为什么有关电子邮件地址的RFC变得如此复杂?

的RFC 5321,53226531有验证电子邮件地址复杂的规则.他们:

  • 允许在电子邮件地址内创建评论
  • 为符号提供复杂的限制规则: "() ,:;<>@[\]
  • postmasterlocalpart视为不区分大小写,但将所有其他区分为区分大小写
  • 允许电子邮件地址组

由于这些复杂的规则,根据RFC测试给定字符串是否是语法上有效的电子邮件地址不能仅使用正则表达式执行.

显然,主要电子邮件提供商不支持其中许多规则.

从历史上看,为电子邮件地址创建如此复杂的规则的动机是什么?在对电子邮件的起源维基百科的文章似乎意味着,从20世纪80年代早期的现代化标准旨在覆盖所有旧电子邮件十岁上下的系统用自己特定的标准和语法.

然而,标准,电子邮件提供商和电子邮件最终用户的实施者都对工作系统有既得利益,当规则不太晦涩并且可以轻松地转换为通过有限数量测试的软件时,这更容易实现,那么,为什么我们今天有一个如此复杂的标准,没有人完全使用它?

从历史上看,XML在很大程度上已被JSON取代,其成功部分归因于其语法的简单性.

email email-address email-validation rfc5322

8
推荐指数
1
解决办法
577
查看次数

RFC 5322是否允许回复标题而没有任何实际的电子邮件地址?如果是这样,它的语义是什么?

RFC 5322的第3.6.2节reply-to标头定义为:

reply-to        =   "Reply-To:" address-list CRLF
Run Code Online (Sandbox Code Playgroud)

地址列表是指在确定第3.4节.当展开ABNF语法时,我发现地址列表只能包含phrase ":" ";"(短语3.2.5节中定义).因此,归结为您能够添加不包含任何实际电子邮件地址的回复标头.

RFC规定:

当存在"Reply-To:"字段时,它指示消息的作者建议发送回复的地址.

即使这只是一个建议,我可以建议某人回复我姓名但未指明的地址,这似乎很奇怪.

我在这里错过了什么吗?我该如何解释这样的建筑?

email reply rfc5322

5
推荐指数
1
解决办法
3276
查看次数

Python3电子邮件模块中的解码不正确

我最近遇到了一个我想用Python电子邮件模块解析的EML文件.在from标题中,有以下文字:

From: "=?utf-8?b?5b2t5Lul5Zu9L+esrOS6jOS6i+S4mumDqOmhueebrumDqC/nrKzkuozkuovkuJrp?=
=?utf-8?b?g6g=?=" <email@address.com>
Run Code Online (Sandbox Code Playgroud)

因此名称分为两部分.当我连接代码并手动解码为十六进制时,我得到以下结果,这是正确的UTF-8字符串:

e5 bd ad e4 bb a5 e5 9b bd 2f e7 ac ac e4 ba 8c e4 ba 8b e4 b8 9a e9 83 a8 e9 a1 b9 e7 9b ae e9 83 a8 2f e7 ac ac e4 ba 8c e4 ba 8b e4 b8 9a e9 83 a8
Run Code Online (Sandbox Code Playgroud)

但是,当我调用Python电子邮件解析器时parse,最后3个字节未正确解码.相反,当我读到它的值时message['from'],有代理人:

dce9:20:dc83:dca8
Run Code Online (Sandbox Code Playgroud)

因此,当我,例如,想要打印字符串,它最终结束

UnicodeEncodeError('utf-8', '???/????????/????\udce9\udc83\udca8', 17, 18, 'surrogates not allowed')
Run Code Online (Sandbox Code Playgroud)

当我将From标题中的2个编码部分加入一个时,看起来像这样:

From: "=?utf-8?b?5b2t5Lul5Zu9L+esrOS6jOS6i+S4mumDqOmhueebrumDqC/nrKzkuozkuovkuJrpg6g=?=" <email@address.com>
Run Code Online (Sandbox Code Playgroud)

该字符串由库正确解码,可以打印得很好.

这是Python电子邮件模块中的错误吗?EML标准是否允许双重编码值? …

python email utf-8 python-3.x rfc5322

4
推荐指数
1
解决办法
169
查看次数

RFC 5322 电子邮件格式验证

如何根据RFC 5322检查由我的代码生成的电子邮件是否有效 ?

email email-validation rfc5322

3
推荐指数
1
解决办法
1万
查看次数

PHP filter_var和RFC 5322

PHP函数是否filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)使用标准RFC 5322验证电子邮件?

php filter-var rfc5322

2
推荐指数
1
解决办法
979
查看次数