E-mail文化拾趣

首部

Carbon Copy (Cc:)

Carbon copying指的是用复写纸复写,电子邮件世界里借用了这个术语表示把副本抄送给非主要收件人。

Blind Carbon Copy (Bcc:)

RFC5322提及邮件客户端有三种处理Bcc:的方式:

  • To、Cc、Bcc收件人均收到同样的邮件,该邮件中Bcc:首部被移除
  • To、Cc收件人收到Bcc:首部被移除的邮件。Bcc收件人收到带有Bcc:首部的邮件, 实现可以决定Bcc收件人是否能见到其他Bcc收件人。
  • To、Cc收件人会看到空的Bcc:首部。

供参考,下面是RFC5322的3.6.3节对Bcc:的描述原文:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains
addresses of recipients of the message whose addresses are not to be
revealed to other recipients of the message. There are three ways in
which the "Bcc:" field is used. In the first case, when a message
containing a "Bcc:" field is prepared to be sent, the "Bcc:" line is
removed even though all of the recipients (including those specified
in the "Bcc:" field) are sent a copy of the message. In the second
case, recipients specified in the "To:" and "Cc:" lines each are sent
a copy of the message with the "Bcc:" line removed as above, but the
recipients on the "Bcc:" line get a separate copy of the message
containing a "Bcc:" line. (When there are multiple recipient
addresses in the "Bcc:" field, some implementations actually send a
separate copy of the message to each recipient with a "Bcc:"
containing only the address of that particular recipient.) Finally,
since a "Bcc:" field may contain no addresses, a "Bcc:" field can be
sent without any addresses indicating to the recipients that blind
copies were sent to someone. Which method to use with "Bcc:" fields
is implementation dependent, but refer to the "Security
Considerations" section of this document for a discussion of each.

在Gmail里发封没有To:、Cc:,只有Bcc:的邮件,收件人就会看到To: undisclosed-recipients: ;

Signature Block

附在邮件正文后面作为签名信息,通常会包含发件人的职位、联系方式等。 为了和正文分隔开,一般使用两个连字符跟着一个空格和一个换行符(sig dashes),用C语言的字面字符串表示方式就是" -\n"。 邮件客户端可以认出双连字符记号用与正文不同的样式标记出来或者隐藏。

Top Posting vs Bottom Posting

Posting这个词是用来描述新闻组的,

在回复邮件时,表示回复文本时在原文下面写回复(bottom posting)还是在原文上面先回复(top posting)。 传统的方式是采用bottom posting, 先发生的事(引文)出现在前面、后发生的(回复)出现在后面在时间顺序上较为自然, 而top posting则会对理清事件的先后顺序造成阻碍:

1
2
> Where are you?
At home.

他们抨击top posting的理由就是后者颠倒了引文和回复的时间顺序:

1
2
At home.
> Where are you?

对阅读邮件特别是很长的线索时造成障碍。在很多邮件列表,网络礼仪就是使用bottom posting,

另外还有interleaved posting,把原文分为多段,在每一段后写下自己的回复。 这种风格可以被用作point-by-point rebuttal,逐条驳斥对方的观点。

现在top posting占到了上风,我觉得很大一部分原因是网页版邮件客户端的兴起和非黑客邮件使用者数目的激增。 邮件客户端缺乏标注引文和切换引文显示功能时,采取top posting的方式能减少鼠标滚动,更容易看到回复的内容。

比如说Mutt默认就设置了快捷键跳到下一个不包含引文的行:

1
2
3
4
<skip-quoted> (default: S)

This function will go to the next line of non-quoted text which comes after
a line of quoted text in the internal pager.

以及用于切换引文是否显示的:

1
2
3
4
5
6
7
<toggle-quoted> (default: T)

The pager uses the $quote_regexp variable to detect quoted text when
displaying the body of the message. This function toggles the display of
the quoted material in the message. It is particularly useful when being
interested in just the response and there is a large amount of quoted text
in the way.

Reply-To

这个邮件首部为用户回复邮件时提供建议,设定新邮件的To:首部。

Thread

References

In-Reply-To

format=flowed

Mail-Followup-To

回复邮件时如果选择了follow up(或者说reply to all)的方式,那么收件人会被填为Mail-Followup-To设定的地址。 避免发件人如果订阅了该邮件列表的话收到两封相同的邮件。

Mutt在你设置subscribe该邮件列表时会自动设置Mail-Followup-To首部。

X-Mailer

一些不友好的客户端:

QQMail

不使用References:首部。

Mutt

query_command

1
2
set query_command="echo; grep %s ~/.mutt/aliases | cut -d' ' -f3-"
bind editor <tab> complete-query

其他

参考配置

http://www.spinnaker.de/mutt/muttrc

Sender Policy Framework

DEFCON 21 CTF参赛记

7月31日

我和Kelwin、zTrix、LittleFatter等同行,在大本营集合,并领到了队服:

队服背面logo总感觉需要重新设计一下。另外三名队员已经到达拉斯维加斯了,而Fish尚未启程。在UA888飞机上待了三个多小时,因为飞机故障我们被安排在北京临空皇冠假日酒店住一宿。

Read More

DEFCON 21——我的奋斗

记得DEFCON CTF Quals是在6月15日到6月17日早晨,而8:00我要参加数字逻辑电路的期末考试。0:00多回到寝室,舍友告诉我之前台湾小学期的事还有很多手续要办,而我都没处理。我得在北京市出入境管理管理办事大厅上预约,做完各项活动已是1:00多,5:30起床“预习”数字逻辑电路两小时就迈向考场。

Read More

第二届青少年开发者大会

昨天逛微博时无疑发现今天居然就是第二届青少年开发者大会了,之后又看到果壳网也有介绍,背景图片第一眼看去就是郭老师,再一眼刘啸宇,感觉奇怪……推测一下原来第三个人似乎是我,想起来第一届大会时的情形了……恰好ppwwyyxxzxytim也在学校,就约定今天来凑个热闹了。会场在中国科学院计算中心研究所,入会场时大概刚好9:00,人还是不多。这一次确确实实是青少年的开发者大会了,参会学生很多,而不像第一次大会主要都是已经工作的讲者。我记得第一届大会郭老师还说大会还有年龄限制,他都快到限制了。现在我们三个“老人”来这里算不算不接地气。以前人人时似乎有一群“跪圈”在北京活跃的人,不过老实说我真不喜欢“跪圈”这个说法。互相学习是件好事,不过膜拜和跪来跪去还是免了。这些人似乎都没有来,和去年相比平均年龄也许能下降10岁吧。我们三个就成了这里年纪最大的几个人了。这可能是因为北京的青少年开发者比深圳多?也可能是宣传做好了。不过用just-ping.com测试2013.adc-cn.org,大多数检测点都返回Packets lost (100%)

Read More

使用Suricata进行IDS/IPS

Suricata

Intrusion detection System(IDS)监控网络或系统,寻找各类违反安全方针的行为。Suricata是Open Information Security Foundation和其他相关支持协会从2009年开始开发的一套用于网路入侵检测(IDS)、入侵防护(IPS)及网络监控的系统。这方面最著名的产品是Sourcefire的Snort。那么为什么要选择Suricata呢?我在这方面的知识还几近空白,无法在架构之类的方面作出判断,想的到的用Suricata的理由只有这三点:

Read More

《Debug Hacks》和调试技巧

下篇见调试技巧2

Debug Hacks

作者为吉冈弘隆、大和一洋、大岩尚宏、安部东洋、吉田俊辅,有中文版《Debug Hacks中文版—深入调试的技术和工具》。这本书涉及了很多调试技巧,对调试器使用、内核调试方法、常见错误的原因,还介绍了systemtapstraceltrace等一大堆工具,非常值得一读。

Read More

Ouroborus Program - quine-relay 分析

Quine Relay

今天上网时看到有人分享了这个项目:quine-relay,点进去看是这样一个程序:一开始是一段Ruby代码,运行后生成Scala代码,后者运行后生成Scheme代码,如此执行,依次生成了Bash、Smalltalk、Tcl等代码,最后又回到最初的Ruby代码。这类程序有个名字,叫ouroborus programs。Ouroborus即衔尾蛇,是一条正在吞食自己尾巴的蛇,在这里刚好表示循环的概念。

Read More