无法从浏览器下载 .eml 文件
Posted
技术标签:
【中文标题】无法从浏览器下载 .eml 文件【英文标题】:Cannot download .eml file from browser 【发布时间】:2021-10-20 03:52:32 【问题描述】:我有一个 html 文件,它使用 javascript 创建一个 eml 文件并在单击按钮时下载它。如果我尝试下载而不做任何更改,它会显示message.eml has been blocked because this type of file can harm your system
现在,如果我修改注册表中的Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExemptDomainFileTypePairsFromFileTypeDownloadWarnings
路径并将"file_extension":"eml","domain":"domain.com"
添加到其中,我可以下载并打开这个.eml 文件。但是我意识到重启后权限消失了,所以必须重新设置。我也找到了解决方案。这是为了让我的用户帐户成为密钥的所有者并给予完全控制,同时保持对该密钥的系统和其他用户的只读访问权限。然而它并不成功。但无论如何,我不想在注册表中进行更改。
有没有一种方法可以在不更改预设设置的情况下从浏览器下载 .eml 文件?
下载eml文件的代码为:
<a download="message.eml" id="downloadlink" style="display: none" ><button class="btn btn-primary">Download</button></a>
<script>
(function ()
var textFile = null,
makeTextFile = function (text)
var data = new Blob([text], type: 'text/plain');
if (textFile !== null)
window.URL.revokeObjectURL(textFile);
textFile = window.URL.createObjectURL(data);
return textFile;
;
var create = document.getElementById('create'),
textbox = document.getElementById('textbox');
if(create)
create.addEventListener('click', function ()
var link = document.getElementById('downloadlink');
link.href = makeTextFile(textbox.value);
link.style.display = 'inline';
, false);
else
print('no create')
)();
</script>
【问题讨论】:
您好,请问您是否有机会查看我的回答?如果有什么我可以帮助的,请告诉我。 嗨@YuZhou,很抱歉回复晚了。感谢您富有洞察力的回答。但是,我无权对系统进行任何永久性更改。但是,我后来意识到,我仍然可以将 .eml 文件保留在系统中,并通过右键单击显示message.eml has been blocked because this type of file can harm your system
的弹出窗口在 Outlook 中打开它。
是的,即使弹出窗口,您仍然可以手动点击下载文件。
【参考方案1】:
我知道你的感受,但恐怕你不能在不更改组策略或注册表的情况下从 Edge 下载 .eml
文件。
这是 Chromium 浏览器的一项功能,旨在保护用户免受有害下载文件的侵害。铬中有一个file types policies,Edge 继承了它。从列表中可以看到.eml
文件的危险等级为ALLOW_ON_USER_GESTURE
。这意味着此类文件具有潜在危险,但如果用户熟悉下载站点并且下载是故意的,则可能无害。有关详细信息,您可以参考 Edge 高级 PM 的this article。
如果您想自动下载此类ALLOW_ON_USER_GESTURE
文件,您可以设置this policy/registry。如果不想修改注册表,我觉得只能设置相应的组策略。
【讨论】:
以上是关于无法从浏览器下载 .eml 文件的主要内容,如果未能解决你的问题,请参考以下文章