【问题标题】:How can I insert HTML formatted text in Outlook?如何在 Outlook 中插入 HTML 格式的文本?
【发布时间】:2015-08-20 19:11:51
【问题描述】:

我在 emacs 中生成了这个语法高亮代码 sn-p,并希望将其粘贴到 Outlook 邮件中(当然,渲染了 html,没有 html 代码)。

<pre>
<span style="color: #a020f0; background-color: gtk_selection_bg_color;"> function</span><span style="background-color: gtk_selection_bg_color;"> </span><span style="color: #008b8b; background-color: gtk_selection_bg_color;">uvm_object</span><span style="background-color: gtk_selection_bg_color;"> uvm_object::</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">clone</span><span style="color: #707183; background-color: gtk_selection_bg_color;">()</span><span style="background-color: gtk_selection_bg_color;">;
   uvm_object tmp;
   tmp = </span><span style="color: #228b22; background-color: gtk_selection_bg_color;">this</span><span style="background-color: gtk_selection_bg_color;">.</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">create</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">get_name</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">()</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">if</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="background-color: gtk_selection_bg_color;">tmp == </span><span style="color: #228b22; background-color: gtk_selection_bg_color;">null</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">
     </span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">uvm_report_warning</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #8b2252; background-color: gtk_selection_bg_color;">"CRFLD"</span><span style="background-color: gtk_selection_bg_color;">, </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">$sformatf</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">(</span><span style="color: #8b2252; background-color: gtk_selection_bg_color;">"The create method failed for %s,  object cannot be cloned"</span><span style="background-color: gtk_selection_bg_color;">, </span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">get_name</span><span style="color: #909183; background-color: gtk_selection_bg_color;">()</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">, UVM_NONE</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">else</span><span style="background-color: gtk_selection_bg_color;">
     tmp.</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">copy</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #228b22; background-color: gtk_selection_bg_color;">this</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">return</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="background-color: gtk_selection_bg_color;">tmp</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
</span><span style="color: #a020f0; background-color: gtk_selection_bg_color;"> endfunction</span><span style="background-color: gtk_selection_bg_color;">
</span></pre>

它在 HTML 中呈现如下。

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

我目前的以下方法可行,但速度很慢:

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

我希望有人发布一个涉及某种 Windows 后台脚本的解决方案(就像 autohotkey 作为后台服务一样),它会在剪贴板中即时呈现 html 代码并将其粘贴。

【问题讨论】:

  • 这里有点跑题了,这个地方是关于编程的问题。我建议您查看您使用的电子邮件应用程序的文档或咨询您已付费的技术支持。
  • @arkascha 我希望有人发布了一个涉及某种 Windows 后台脚本的解决方案(就像 autohotkey 作为后台服务一样),它在剪贴板中即时呈现一个 html 代码并将其粘贴.因此,这是一个需要编程解决方案的问题。我查看了 Outlook 中的所有选项;它没有这样的东西。
  • 如果是这样,那么您应该在问题中说明这一点,而您没有。无论如何,我希望您有更多机会在 SuperUser 姐妹页面上获得答案。您将在本页底部找到该链接。
  • @arkascha 谢谢。你想让我在那里创建一个重复的帖子还是管理员可以把它移到那里?

标签: html windows email outlook


【解决方案1】:

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

import htmlclipboard
import win32clipboard

win32clipboard.OpenClipboard()
clipboardStr = win32clipboard.GetClipboardData()
htmlclipboard.PutHtml(clipboardStr)

它不符合您作为后台服务运行的要求,但在我的情况下,我已将脚本固定到我的快速启动栏,以便在需要时轻松运行。 另外,我使用这个 elisp 程序将我在 emacs 中的当前选择作为 HTML 复制到 kill ring 以保留格式:

(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")))

就我而言,如果我想通过电子邮件发送代码以保留我在 emacs 中看到的格式:

  1. 在 emacs 缓冲区中选择区域
  2. M-x copy-region-as-html
  3. 从快速启动栏运行 python 脚本
  4. 粘贴到 Outlook 中

【讨论】:

    【解决方案2】:

    更新

    似乎复制到“text/html”然后复制到“text/plain”允许正确复制到 Outlook 和纯文本位置。 YMMV,但如果您希望能够粘贴到任何地方,值得一试。

    https://jsfiddle.net/bzc97301/

    原创

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

    重现的最少代码:

    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)
    

    带有文本输入的功能示例(您可以将粘贴复制到 textarea 中,然后点击按钮复制到 text/html 剪贴板。请注意,粘贴大多数位置不会做任何事情:输入必须接受 text/html 内容 - 谢天谢地Outlook 对我们而言):

    https://jsfiddle.net/schtauffen/nequ7Lzs/13/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-11
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多