Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Outlook中插入HTML格式的文本?_Html_Windows_Email_Outlook - Fatal编程技术网

如何在Outlook中插入HTML格式的文本?

如何在Outlook中插入HTML格式的文本?,html,windows,email,outlook,Html,Windows,Email,Outlook,我在emacs中生成了这个语法突出显示的代码片段,并希望将其粘贴到Outlook邮件中(当然,呈现html时,不包含html代码) 函数uvm_对象uvm_对象::克隆(); uvm_对象tmp; tmp=this.create(get_name()); if(tmp==null) uvm_报告_警告(“CRFLD”,“$sformatf”(%s的创建方法失败,无法克隆对象),get_name()),uvm_无); 其他的 tmp副本(本); 返回(tmp); 端功能 它以HTML呈现,如下

我在emacs中生成了这个语法突出显示的代码片段,并希望将其粘贴到Outlook邮件中(当然,呈现html时,不包含html代码)


函数uvm_对象uvm_对象::克隆();
uvm_对象tmp;
tmp=this.create(get_name());
if(tmp==null)
uvm_报告_警告(“CRFLD”,“$sformatf”(%s的创建方法失败,无法克隆对象),get_name()),uvm_无);
其他的
tmp副本(本);
返回(tmp);
端功能
它以HTML呈现,如下所示

由于Outlook mail支持html格式,我很好奇是否有办法直接使用html代码创建格式良好的电子邮件正文文本

我目前采用的以下方法有效,但速度较慢:

  • 我生成一个HTML文件,其中包含从文件中选择的代码的语法高亮显示的代码
  • 然后在Windows的浏览器中打开该文件
  • 复制该页面内容
  • 粘贴到Outlook中

我希望有人发布一个解决方案,包括某种windows后台脚本(就像autohotkey作为后台服务工作一样),可以在剪贴板中动态呈现html代码并粘贴该代码

我有一个简单的python脚本,可以将复制缓冲区中的纯文本HTML转换为HTML格式的文本,然后粘贴到Microsoft Office程序中。它需要一个可用的包“pywin32”

它不满足您作为后台服务运行的要求,但在我的例子中,我已经将脚本固定到我的quicklaunch栏上,这样在需要时就可以轻松地运行它。 此外,我使用此elisp过程将emacs中的当前选择以HTML形式复制到kill环,以保留格式:

function handleCopy(evt) {
  evt.clipboardData.setData('text/html', '<table><thead><tr><th>some</th></tr></thead><tbody><tr><td>markup</td></tr></tbody></table>')
  evt.preventDefault(); // prevent writing to text/plain
}

document.addEventListener('copy', handleCopy)
document.execCommand('copy')
document.removeEventListener('copy', handleCopy)
在我的例子中,如果我想通过电子邮件发送代码,保留我在emacs中看到的格式:

  • 选择emacs缓冲区中的区域
  • M-x复制区域为html
  • 从快速启动栏运行python脚本
  • 粘贴到outlook中

  • 更新

    似乎通过复制到“text/html”再复制到“text/plain”可以正确地复制到Outlook和纯文本位置。YMMV,但如果您希望能够到处粘贴,那么值得一试

    原创

    我发现了一个使用javascript解决此问题的简单方法。 复制到文本/html剪贴板,并将文本/纯剪贴板留空。然后粘贴到Outlook中就可以顺利工作了

    要复制的最小代码:

    function handleCopy(evt){
    evt.clipboardData.setData('text/html','somemarkup')
    evt.preventDefault();//防止写入文本/纯文本
    }
    文件.附录列表(“副本”,手抄本)
    document.execCommand('copy')
    文件。删除文件列表器(“副本”,手册副本)
    
    文本输入的功能示例(您可以将粘贴复制到文本区域,然后点击按钮复制到文本/html剪贴板。请注意,粘贴大多数位置不会起任何作用:输入必须接受文本/html内容-感谢Outlook的帮助):


    这里有点离题,这里是关于编程问题的。我建议您查看一下您使用的电子邮件应用程序的文档,或咨询他们的技术支持。@arkascha我希望有人发布一个涉及某种windows后台脚本的解决方案(就像autohotkey作为后台服务一样)在剪贴板中动态呈现html代码并粘贴该代码。因此,这是一个需要编程解决的问题。我查看了Outlook中的所有选项;它没有这样的东西。如果是这样,那么你应该在问题中陈述,而你没有。无论如何,我希望你有更多的机会在超级用户姐妹页面上得到答案。您可以在本页底部找到链接。@arkascha谢谢。你想让我在那里创建一个重复的帖子,还是管理员可以把它移到那里?
    (defun copy-region-as-html (START END)
      (interactive "r")
      (let ((snippet (buffer-substring START END))
            (buf (get-buffer-create "*htmlized_to_clipboard*"))
            (htmlized-file-name (expand-file-name "~/htmlized.html")))
        (set-buffer buf)
        (delete-region (point-min) (point-max))
        (insert snippet)
        (htmlize-buffer)
        (set-buffer "*html*")
        (clipboard-kill-region (point-min) (point-max))
        (kill-buffer "*html*")
        (kill-buffer "*htmlized_to_clipboard*")
        (message "HTML copied to clipboard")))
    
    function handleCopy(evt) {
      evt.clipboardData.setData('text/html', '<table><thead><tr><th>some</th></tr></thead><tbody><tr><td>markup</td></tr></tbody></table>')
      evt.preventDefault(); // prevent writing to text/plain
    }
    
    document.addEventListener('copy', handleCopy)
    document.execCommand('copy')
    document.removeEventListener('copy', handleCopy)