将emacs与Thunderbird结合使用以撰写和回复邮件


13

关于使用emacs作为成熟的主要电子邮件程序的文章很多。我正在寻找一个具有简单设置的内容,以便可以将Thunderbird保留为我的主要电子邮件管理程序,但可以在emacs中编写和发送电子邮件。由于python可以从命令行发送邮件,因此我认为这对于emacs来说并不太困难。

下一步:如果可能,我仍希望能够与imap服务器同步以提取最近的100封电子邮件,以便我可以在emacs中撰写响应。这不需要文件夹管理,但需要一定程度的同步,尽管在会话结束后我不需要将消息本地保留给emacs。仍然需要offlineimap吗?

对合适的配置有什么建议吗?


1
看看EmacsWiki:Category Mail。它提供了许多选项,您可能会发现其中一些有用。

1
是的,配置和测试的方法太多了。我将不胜感激有经验的用户的意见,他们可能对哪些替代方案最适合这些需求有一个想法。
hatmatrix

2
mu4e似乎适合您。
shackra

1
关于Emacs,没有什么简单的。准备花很多时间根据自己的喜好自定义它,并学习一些或很多elisp方法。但是,一旦使它能够完全按照自己的意愿去做,这将是非常有益的。我使用旅行癖,并且仍在不时地调整它的行为-已经一年了,并且调整/自定义Emacs一直是我的日常痴迷。
法律列表

我怀疑这个问题目前范围太广,需要更离散一些,但希望由社区来决定要点。

Answers:


9

您可以使用Thunderbird的外部编辑器加载项,然后将外部编辑器设置为emacs。如果您访问此站点,则可以下载文件exteditor_v100.xpi。然后从Thunderbird内部,从附件管理器中,您可以“从文件安装附件”。重新启动后,您可以在附加组件管理器中找到“外部编辑器”的选项,然后可以从其中将emacs的路径作为外部编辑器。那应该适合您的需求。

话虽这么说:

我正在寻找一个具有简单设置的内容,以便可以将Thunderbird保留为我的主要电子邮件管理程序,但可以在emacs中编写和发送电子邮件。

这是一个问题,我不确定您是否真的想要这个。在emacs中编辑邮件的任何简单设置都不会将Thunderbird用作您的主要电子邮件管理。

我强烈建议您使用mu4e和offlineimap。在我对emacs一无所知之前,我就开始使用它,并且它几乎像电子邮件客户端一样简单。


这可能比您所暗示的更好。您是否有机会对其进行编辑,以包含有关如何在Thunderbird中设置外部编辑器的信息,更重要的是,您还需要在Emacs方面进行设置?

不幸的是,我现在不在可以对其进行测试的地方。(我自己也没有设置它。)是扩展站点,但我怕自己不使用它会说更多。似乎配置也可能取决于操作系统。
塞斯·罗斯柴尔德

是的,我认为外部编辑器扩展已经死了-上一次udpate 2008?在扩展列表中不可用。我一直使用它,直到Thunderbird不再支持它为止。
hatmatrix

@crippledlambda似乎仍然可以工作(我刚刚尝试过),因此它可能是您要使用的最佳选择。
塞思·罗斯柴尔德

@Seth,谢谢-它确实起作用了(!?),但没有如描述的那样将内容从emacs缓冲区传输到消息中。目前必须将其复制粘贴回Thunderbird消息窗口,因此无法解决问题,但是我希望此修复很简单。尽管如此,它与我想解决的问题最接近,因此我将其标记为已回答。
hatmatrix 2014年

4

至少这应该使您入门:

但可以在emacs中撰写和发送电子邮件。由于python可以从命令行发送邮件,因此我认为这对于emacs来说并不太困难。

这是我的init文件中用于编写邮件的内容,然后使用gmail发送邮件,应在您的操作系统中安装gnutsl:

;; send mail
(setq
 send-mail-function 'smtpmail-send-it
 message-send-mail-function 'smtpmail-send-it
 user-mail-address "patrick.nsukami@gmail.com"
 smtpmail-starttls-credentials '(("smtp.gmail.com" "587" nil nil))
 smtpmail-auth-credentials  (expand-file-name "~/.authinfo")
 smtpmail-default-smtp-server "smtp.gmail.com"
 smtpmail-smtp-server "smtp.gmail.com"
 smtpmail-smtp-service 587
 smtpmail-debug-info t
 starttls-extra-arguments nil
 starttls-gnutls-program "/usr/bin/gnutls-cli"
 starttls-extra-arguments nil
 starttls-use-gnutls t
)

下一步:如果可能,我仍希望能够与imap服务器同步以提取最近的100封电子邮件,以便我可以在emacs中撰写响应。这不需要文件夹管理,但是需要进行一定程度的同步,尽管在会话结束后我不需要将消息本地保留给emacs。

您应该配置您的邮箱并启用IMAP,才能从许多设备上管理邮件。这是我的配置,用于使用emacs和gnus从gmail读取邮件:

;read mail w/ gnus
(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))
(setq mm-discouraged-alternatives '("text/html" "text/richtext"))

仍然需要offlineimap吗?

我从未使用过offlineimap,但是如果您要在离线时管理邮件,则应该在在线后立即在计算机和服务器之间进行同步

〜/ .authinfo文件将被用于存储您的凭据,将有至少两条线,用于发送邮件的第一行:

machine smtp.gmail.com port 587 login you@somewhere.com password NotsoiNcreDiblePassword

第二个用于检索邮件的:

machine imap.gmail.com secret port 993 login you@somewhere.com password NotsoiNcreDiblePassword


2

下一步:如果可能,我仍希望能够与imap服务器同步以提取最近的100封电子邮件,以便我可以在emacs中撰写响应。这不需要文件夹管理,但需要一定程度的同步,尽管在会话结束后我不需要将消息本地保留给emacs。仍然需要offlineimap吗?

如果要与IMAP服务器同步,建议您使用本地maildir和offlineimap将其与远程服务器同步。根据您的文件夹结构,您可以将同步限制为单个目录,并在完成后清除它。(如果同时删除了缓存,Offlineimap不会删除您在本地删除的电子邮件。)

但是,如果您的maildir已经由Thunderbird管理,那么您实际上根本不需要offinemap,因为您可以简单地将现有电子邮件作为文件打开(与更密集的格式相比,maildir的魅力)。

要编写电子邮件,您实际上只需要创建带有正确标题的文本文件即可。 message-mode为您做到这一点。(Emacs的大多数电子邮件客户端只是简单地重复使用,message-mode而不是发明自己的界面来编写电子邮件。)一旦有了有效的电子邮件文件,就可以使用单独的命令(例如msmtp)来发送它。您可以配置message-mode为使用msmtp,如下所示:

(setq mail-specify-envelope-from t)
(setq mail-envelope-from 'header)
(setq message-sendmail-envelope-from 'header)
(setq message-send-mail-function 'message-send-mail-with-sendmail)

;;use msmtp instead of sendmail
(setq sendmail-program "/usr/bin/msmtp")

您的msmtp配置独立于Emacs,您可以在Emacs之外使用它。

现在,您也只需阅读Emacs中的电子邮件即可。对于此任务,我建议使用mu4e。当然,这是完全可选的,因为您可以与任何其他邮件客户端一起读取已同步的maildir。例如,Thunderbird可以使用本地maildir作为存储后端。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.