带有maildir的Gnus:回复标头中的奇怪字段

Posted

技术标签:

【中文标题】带有maildir的Gnus:回复标头中的奇怪字段【英文标题】:Gnus with maildir : strange fields in reply header 【发布时间】:2011-11-13 03:01:03 【问题描述】:

我正在使用带有 Offlineimap 的 Gnus 来阅读 GMail。 Offlineimap 从 GMail 获取邮件并存储在我本地计算机上的 Maildir 文件夹中 /mnt/Mail/ 。我将 Gnus 指向这些文件夹,它从那里读取邮件并将其显示给我。

当我尝试回复邮件时(当光标位于摘要缓冲区中邮件的主题上时键入“r”),我遇到以下问题:

(i) “Fcc:”字段填充了一个不存在的目录,我被告知该目录不存在(它不存在)。还会提示我是否要将此目录创建为新的 maildir 目录:

/mnt/Mail/sent 不是邮件目录。创造它? (是或否)

由于我不想保存已发送邮件的本地副本(因为 Gmail SMTP 和 IMAP 无论如何都会为我获取它),所以在继续之前我必须始终说“不”。每次都发生这种情况时,这是一个巨大的不便。

我如何摆脱这个字段?不想希望以这种方式将发送的邮件保存在本地计算机上的任何位置。

我在 .gnus 文件中尝试了以下设置,但无济于事:

(setq gnus-author-copy nil) (setq gnus-author-copy-saver nil)

..

(setq mail-yank-ignored-headers "Fcc:")

(ii) 消息头中有一个“参考:”字段,内容如下:

参考:

我如何摆脱这个字段?这看起来很丑陋,在普通电子邮件中毫无用处。

(iii) 消息头中的“From:”字段指的是我的本地机器:

发件人:G 菲利普

我还必须每次都编辑此字段,以便它包含我正确的电子邮件 地址。

由于我在我的 gmail 帐户中使用了几个电子邮件地址,因此我在我的 .gnus 文件中尝试了以下操作,以使该字段使用我正在回复的电子邮件的“收件人:”地址,但没有一种方法作品:

(setq message-alternative-emails (regexp-opt '("myfirstaddress@gmail.com" "myotheraddress@gmail.com"))))

..

(setq gnus-posting-styles '(((标题“到”“myfirstaddress gmail.com”) (地址“myfirstaddress gmail.com”)) ((标题“到”“myotheraddress gmail.com”) (地址“myotheraddress gmail.com”))))

如何设置,以便“发件人:”字段自动填充原始电子邮件的“收件人:”字段?

我的 .gnus 文件如下所示:

;;使用Gnus从offlineimap同步的本地目录读取gmail

(setq gnus-select-method

 '(nnmaildir "Gmail"

             (directory "/mnt/Mail")

             (expire-age never)))

;;不要隐藏已读邮件

(setq gnus-fetch-old-headers t)

;;按日期排序,最新的在前。

(setq gnus-thread-sort-functions

       '(gnus-thread-sort-by-number

         gnus-thread-sort-by-most-recent-date))

;;不要每次都寻找新的“组”。

(setq gnus-check-new-newsgroups nil)

;;使用更好(但更慢)的函数来提取信息

;;从邮件标题。

(setq gnus-extract-address-components

 'mail-extract-address-components)

;;使用 gmail SMTP 服务器发送电子邮件。

(setq send-mail-function 'smtpmail-send-it

  message-send-mail-function 'smtpmail-send-it

  smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))

  smtpmail-auth-credentials '(("smtp.gmail.com" 587 "myemailaddress@gmail.com" nil))

  smtpmail-default-smtp-server "smtp.gmail.com"

  smtpmail-smtp-server "smtp.gmail.com"

  smtpmail-smtp-service 587

  smtpmail-debug-info t

  smtpmail-local-domain "gmail.com")

【问题讨论】:

【参考方案1】:

嗯,(ii) 很简单。您可以通过将任何标题添加到 gnus-ignored-headers 来隐藏任何标题(或者将其从 gnus-visible-headers 中删除,如果它存在的话)。见http://www.gnus.org/manual/gnus_142.html#SEC142

(iii) 如果我正确理解了这个问题,也可能很容易。您是在谈论您发送的消息中的 From 字段吗?如果是这样,那么将user-mail-address 设置为您想要使用的默认值,Gnus 将不必根据您的用户名和机器的主机名进行猜测。

【讨论】:

谢谢,但这已经是这样了:gnus-visible-headers 是非零:"^From:\\|^Newsgroups:\\|^Subject:\\|^Date: \\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^[BGF]?抄送: \\|^Posted-To:\\|^Mail-Copies-To:\\|^Mail-Followup-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent- From:\\|^X-Sent:" 和 FWIW,gnus-ignored-headers 包含对 "References" 的引用: ("^Path:" "^Expires:" "^Date-Received:" "^References :" "^Xref:" ...) 但这似乎并不能阻止 gnus! gnus-ignored-headers 应该是包含正则表达式的单个字符串,与gnus-visible-headers 的样式相同。但是,这无关紧要,因为 gnus-ignored-headers 仅在 gnus-visible-headers 为 nil 时使用。您可以通过转到您的消息缓冲区并执行C-h v gnus-visible-headers 来仔细检查gnus-visible-headers 的值。这将向您显示当前值(以及变量的文档)。 以您建议的方式再次检查gnus-visible-headers 的值,得到的结果与以前完全相同。我已经辞职每次都删除讨厌的Fcc:字段。

以上是关于带有maildir的Gnus:回复标头中的奇怪字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 emacs 和 gnus 在引用的回复中包含原始消息的日期和时间

在 Gnus 中处理 Outlook 风格的引用

为啥 WCF 删除了我的回复消息中的 wsa:To 标头?

HttpRequestMessage 的 Content-Type 标头中的奇怪行为

带有 Access 2007 的 DAO 中的奇怪字段分配问题

为回复消息创建 WCF 寻址标头