如何将已发送邮件导出为eml/msg文件?

如何将 discourse 发送的完整电子邮件导出到文件(eml 或 msg 格式)?

问题背景:我们遇到问题,discourse 的邀请邮件被接收邮件服务器(某个邮件提供商——其他邮件提供商可以正常发送)归类为垃圾邮件。为了调试此问题,邮件提供商要求提供已发送邮件的 eml 或 msg 文件样本。

谢谢!Simon

您好 Simon :wave:

如果您能在垃圾邮件文件夹中找到邀请电子邮件,或者在其他未被识别为垃圾邮件的收件箱中找到,几乎任何电子邮件客户端都可以选择以这些格式之一下载邮件。

例如,在 Gmail 中,可以在此处以 .eml 格式下载电子邮件:

您可以尝试查看电子邮件发送服务的日志。

1 个赞

感谢您的回复!

我知道这一点,并且已经向相关提供商提供了一个在另一个提供商处发送成功的示例。但是该支持人员明确要求提供发送给他们的示例。:-/ 我没有立场与他们讨论其意义,只想满足他们的要求……

@pfaffman 能否详细说明一下,我不确定是否正确理解了您的意思。
我们使用“标准”安装,带有两个 Docker 容器(discourse、mail-in),并通过 SMTP 连接发送,使用相关提供商的一个电子邮件地址发送到相关提供商的其他电子邮件地址。由于相关提供商向我索要示例,他们显然无法(或不愿意)在他们的系统中找到示例。因此,我正在寻找一种从 discourse 导出的方法。我可以在管理面板中看到邮件被标记为“无法送达”,但只能看到传入的退信消息,而看不到发送的电子邮件。在“已发送”下,我确实看到一行包含电子邮件,也显示了 smtp 详细信息: 250 2.0.0 OK queued with id Z2869bz5GCbjCq9,但没有电子邮件详细信息(标题、正文)或下载/导出方式。

既然似乎不可能,我将提出一个功能请求:Feature request: export of sent email as file (eml or msg)

为了能够导出已发送的电子邮件,我们需要保留一份副本。

我看到了一个调试设置的价值,该设置可以记录所有发出的邮件。

目前,您可以指向一个本地的 postfix,它将副本放入另一个目录或将副本抄送给您。

感谢您的回复!

是的。一个类似于已存在的 delete email logs after days 设置的设置,可能会很明智,以防止通过在 n 天后删除电子邮件本身来溢出磁盘。

虽然这超出了我目前的能力范围,但第一个方法对我来说似乎是可行的(需要额外的工作)。对于第二个建议,我担心收件邮件服务器可能会更改电子邮件,导致支持部门拒绝该电子邮件…… :-/

我最近需要这样做时,收到了来自 mailgun 的消息。我想其他服务也能让你这样做。

嗯,我们没有使用任何“服务”。只是使用 SMTP 连接到一个普通的邮件账户(约 160 个用户;每天少于 20 封邮件)。

你有一个 SMTP 服务器在接收(可能没有)发送邮件。你无法访问这些日志吗?

我认为你需要一个插件或者破解容器内的代码才能让它将这些消息写入文件,也许吧。

我们不是“拥有”,只是“使用”smtp 服务器。:wink: 这是一个外部提供商的邮件服务器(实际上是同一个提供商,他们正在拒绝邮件……)。邮件服务器确实在发送邮件,只是同一个提供商的接收邮件服务器拒绝了邮件。
由于这是外部提供商的邮件服务器,我们无法访问日志文件。

但我一直在与他们的支持部门来回沟通,希望很快能找到解决方案(这已经花了将近一个月的时间……)。

2 个赞

故事继续……现在支持部门想要一份退信的 eml 或 msg 文件副本。因此,我的后续问题是:是否可以导出收到的电子邮件?在“电子邮件”->“退信”下,我可以看到列表条目,并且可以查看电子邮件的详细信息(标题字段、主题、邮件正文等),但我没有看到将消息下载为文件的选项。我是否忽略了什么,或者有其他方法?

原始消息(包括标题和正文,全部内容)复制并粘贴到文本文件中。这与下载文件是相同的。

4 个赞

谢谢你的信息。我不确定编码之类的内容(例如,来自我的MTA的邮件源代码示例:...m=C3=BCssten wir auch noch mal 2 gro=C3=9Fe Switche...),它是否会起作用。
西蒙

您会注意到该消息中有一个标题写着:“Content-Transfer-Encoding: quoted-printable”。这会告诉读取消息的任何内容如何对其进行解码。

.msg 文件中的魔力比您想象的要少 :slight_smile:

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.