我有一个html文件,它使用JavaScript创建一个电子邮件文件,并下载它在一个按钮点击。如果我尝试下载而不做任何更改,它会显示message.eml has been blocked because this type of file can harm your system
现在,如果我在注册表中修改ComputerHKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftEdgeExemptDomainFileTypePairsFromFileTypeDownloadWarnings
路径并添加{"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>
我知道你的感受,但我担心如果不更改组策略或注册表,你无法从Edge下载.eml
文件。
这是铬浏览器的一个功能,旨在保护用户免受有害下载文件的侵害。在chromium中有一个文件类型策略,Edge继承了它。从列表中可以看出,.eml
文件的危险级别为ALLOW_ON_USER_GESTURE
。这意味着这样的文件有潜在的危险,但如果用户熟悉下载站点并且下载是故意的,则可能无害。有关更多信息,您可以参考Edge的高级PM撰写的这篇文章。
如果您想继续自动下载这些ALLOW_ON_USER_GESTURE
文件,您可以设置此策略/注册表。如果您不想编辑注册表,我认为您只能设置相应的组策略。