首页 > 解决方案 > X-Unsent 标志是否仍在工作以将 .eml 文件保存并打开为草稿?

问题描述

我能够在 Delphi 中.eml使用构建文件。TIdMessage

它有一个像这样的标题:

X-Unsent: 1
Subject: Testiing Subject
To: "testeing@mail.com" <testing@mail.com.br>
MIME-Version: 1.0
Date: Tue, 6 Oct 2020 15:43:50 -0300
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

但是当我ShellExecute()使用 Outlook 和 Thunderbird 打开文件(通过 Delphi 代码或文件本身)时,都像收到的电子邮件一样打开它,并且不显示发送消息的选项。

据我所知,在网上搜索时,X-Unsent:1标题应该可以解决问题。

所以我的问题是,这个标志不再起作用了吗?如果没有,我应该尝试什么?

标签: emaildelphioutlookthunderbird

解决方案


是的,截至 2021 年底,在 Windows 10 上,365 应用版本 (v16) 中的 Microsoft Outlook 仍按预期响应 X-Unsent: 1 标头。我刚刚使用在 PowerShell 中生成的快速而肮脏的“.EML”文件进行了测试,该文件如下所示:

@"
X-Unsent: 1
From: $sender
To: $recipient_list
Subject: $email_subject
MIME-Version: 1.0
Content-Type: text/plain

$message_body
"@ |out-file -filepath "${MailPath}\${filename}.eml" -encoding utf8

该问题的评论中有很好的信息和原始答案,但我认为这可能会受益于被标记为已回答以及一些更新和确认。

最后一点:当 EML 文件是 UNIX 样式的“仅 LF”换行符而不是“Windows 样式”CR-LF 时,我得到了最好的结果。


推荐阅读