如何使用 getmail 通过终端从电子邮件下载附件?

如何使用 getmail 通过终端从电子邮件下载附件?

我知道我可以使用客户端下载电子邮件,但是有没有办法直接从终端下载电子邮件?我正在尝试从我的 Gmail 中获取一些电子邮件,以便稍后对某些电子邮件进行分析。

编辑:感谢您的所有回答。现在,我找到了一种使用 getmail 的方法。但我遇到了一个小问题。它下载了电子邮件和附件,但以文本形式打印了所有内容。有没有办法真正检索所述附件?

答案1

Gmail 提供 IMAP 服务,通过该服务,您可以使用任何支持该协议的客户端来获取电子邮件。客户端在磁盘上获取电子邮件的方式可能有所不同。

目前使用最广泛的命令行 IMAP 客户端是 fetchmail。您可以在 Ubuntu 中轻松安装它,然后使用 google 搜索与 gmail 一起使用的具体配置。

fetchmail 的一个特点是它从远程服务器获取电子邮件,然后通过本地 MTA 传输。因此,您需要有一个本地配置的 MTA 才能使此设置正常工作。MTA 可能会将电子邮件附加到 /var/mail/$USER,然后您可以读取此文件进行处理。

另一个可能有用的工具是 offlineimap。我还没有用过它;设置可能比 fetchmail 更容易。

至于您需要保存电子邮件中的附件,您需要安装mpack。然后,对每封电子邮件的 .txt 文件运行 munpack 命令(是的,包含附件中的所有乱码的文件)。它将解码附件并将其保存在单独的文件中:

$ munpack mail.txt 
Invoice.PDF (application/pdf)
my-picture.png (image/png)

答案2

(问题是关于在提问者指定之前通常通过终端访问电子邮件getmail,但附件也很容易保存Mutt:请参阅下面的注释)

您可以使用程序Mutt,该程序在存储库中可用。我发现它具有高度可配置性,一旦您习惯了它,它就相当简单。以下说明涉及使用和协议Mutt进行设置(确保在您的帐户设置中启用)。gmailimapsmtpimapgmail

设置需要一点时间,但这基本上是最快的方法:

  • 创建一个名为的目录.mutt,并在其中创建另一个名为cache
  • 接下来创建一个名为的文件.muttrc来存储您的设置,尽管它不放在.mutt文件夹中,而只是放在您的主文件夹中。然后在其中输入以下设置;对于密码,我将其保留""以便您得到提示,因为将密码放在纯文本文件中并不是一个好主意,例如.muttrc.(注意:这些设置基于 Mutt 上的 Linux 格式文章,LXF134,2010 年 8 月,第 96-97 页。)

    set from = "[email protected]"
    set realname = "Your Name"
    set imap_user = "[email protected]"
    set imap_pass = ""
    set folder = "imaps://imap.gmail.com:993"
    set spoolfile = "+INBOX"
    set postponed = "+[Gmail]/Drafts"
    set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
    set header_cache=~/.mutt/cache/headers
    set message_cachedir=~/.mutt/cache/bodies
    set smtp_url = "smtp://[email protected]:587/"
    set smtp_pass = ""
    set move = no
    set imap_keepalive = 900
    set sort=threads
    set sort_aux=date
    

现在,您的设置已保存在 中.muttrc,只需mutt在终端中输入并在提示时输入您的密码即可。我已经测试了这些设置,它们运行良好;查看更多设置以自定义您的Mutt体验,因为宏可以与程序一起使用以赋予其额外的功能。请参阅Mutt 手册用于此功能及更多功能,当您获得程序时也会安装。

打开附件,选择带有附件的邮件,press v,选择附件并按enter在默认应用程序中查看。要保存附件,press s请改为保存并输入文件名和位置,然后按enter

以下是 Mutt 的截图

答案3

您可以使用 OfflineIMAP。

OfflineIMAP 传统上通过在本地维护 Maildir 格式的邮件文件夹层次结构来运行。您自己的邮件阅读器将从此树中读取邮件,并且永远不需要知道邮件来自 IMAP。OfflineIMAP 将检测 IMAP 服务器和您自己的计算机上的邮件文件夹的更改并双向同步它们,根据需要复制、标记和删除邮件。

它位于宇宙存储库中,因此您可能需要先启用它,然后安装:

离线地图

相关内容