【问题标题】:sending HTML emails in Apple Mail from Safari not working in Yosemite从 Safari 在 Apple Mail 中发送 HTML 电子邮件在 Yosemite 中不起作用
【发布时间】:2015-02-04 07:32:22
【问题描述】:

我是一名平面设计师,每天花费数小时为各种客户设计 HTML 电子邮件。代码在 Dreamweaver 中构建,图像存储在服务器上。为了将这些广告系列的测试发送给我自己和我的客户,至少在过去八年中,我一直依赖以下流程:

  1. 在 Safari 中打开 HTML 文件
  2. 输入 ⌘I(文件 > 共享 > 通过电子邮件发送此页面)
  3. 邮件打开,并创建了一封新电子邮件,其中 HTML 文件以图形方式显示
  4. 选择收件人并点击发送 4。

使用 Yosemite,此过程在第 3 步被中断。相反,Mail 显示一封没有内容的空白电子邮件。我尝试通过将 HTML 文件移动到服务器来解决此问题,但 Mail 覆盖了一些 HTML,即在 <td><img> 标记中指定的图像尺寸。

过去几个月我一直在寻找解决方案。使用相同工作流程的其他人看到此问题吗?或者有人知道从 Mail 发送 HTML 电子邮件的另一种选择吗?

使用 Yosemite 10.10.1、Safari 8.0、Mail 8.1

【问题讨论】:

    标签: safari html-email osx-yosemite


    【解决方案1】:

    在第 1 步之后,在 Safari 中点击 CMD+A(全选)、CMD+C(复制) 转到邮件,按 CMD+V(粘贴)

    【讨论】:

    • 谢谢,它的作用有限。但就我而言,它破坏了我的响应式模板。这里的其他解决方案对于这样一个简单的事情付出了很多努力,所以我决定使用 Thunderbird 来发送基于 HTML 的布局。
    【解决方案2】:

    我遇到了同样的问题,并找到了解决方法。

    确实,当使用 MacOS 10.10 (Yosemite) 作为文件打开时,您不能再使用“通过电子邮件发送此页面”将本地 html 文件发送到 Mail。

    但是,如果您运行本地 Web 服务器(例如 Apache)并以这种方式访问​​本地 html 文件(通过 Apache 提供的地址),那么它确实可以正常工作。

    痛苦,但可行,对我来说值得。

    【讨论】:

      【解决方案3】:

      我感觉到你的痛苦,在这里类似,有一个与本地 Apache 服务器集成的甜蜜 AppleScript,本质上是面向外的 DropBox。 用户将文件或文件夹从他们的本地服务器拖放到 AppleScript 上,它会生成一个带有适当链接的漂亮 html,然后将其发送到 Safari,一旦呈现,它就会被创建为新的 HTML 电子邮件。

      Yosemite 为邮件附件引入了“标记”工具,这需要图像类型的文件。因此,以前完美的 HTML 电子邮件,现在作为本地临时文件的链接(无用),或者提供将其转换为 PDF 的选项,但链接都消失了,Mail.app 有时会抱怨缺少插件.

      总而言之,感觉就像一个未完成的功能...... 所以 Octav 是对的:

      1. Safari,全选,复制
      2. 邮件、新消息、正文、粘贴

      修改过的 AppleScript,如果对任何人有用的话:

          -- create html
          set myHTML to "<!DOCTYPE><html><head></head><body>Your HTML here</body></html>"
          --Or in DreamWeaver copy source first
          set myHTML to the clipboard
      
          -- create a temporary html file
          set tempFile to (path to temporary items folder as text) & "temp.html"
          do shell script "echo " & myHTML & " > " & quoted form of POSIX path of tempFile
      
          -- open the html file in safari
          tell application "Safari"
              activate
              open file tempFile -- open the html file in safari
              set web_page_is_loaded to false
              repeat until web_page_is_loaded is true
                  if (do JavaScript "document.readyState" in document 1) is "complete" then
                      set web_page_is_loaded to true
                  else
                      set web_page_is_loaded to false
                      delay 1
                  end if
              end repeat
      
              delay 1 --wait a little longer still, otherwise copy will not work
              tell application "System Events"
                  tell process "safari"
                      keystroke "a" using command down -- Select all
                      delay 0.3 --wait !important
                      keystroke "c" using command down -- COPY
                      delay 0.3 --wait !important
                  end tell
              end tell
          end tell
      
      
          --now, onto Mail schenanigans
          tell application "Mail"
              activate
              set newMessage to make new outgoing message with properties {visible:true, subject:"", content:""}
      
              --this is well dirty, but there doesn't seem to be a better way of selecting message body and giving it a focus
              tell application "System Events"
                  tell process "mail"
                      keystroke tab   --To
                      delay 0.3
                      keystroke tab   --Cc
                      delay 0.3
                      keystroke tab   --Subject
                      delay 0.3
                      keystroke tab   --From
                      delay 0.3
                      --add/remove more tabs if you have bcc, priority, etc. fields exposed
                      keystroke "v" using command down    -finally PASTE
                  end tell
              end tell
          end tell
      

      【讨论】:

        【解决方案4】:

        我发现在不破坏响应式布局的情况下成功做到这一点的唯一方法是不通过 Mail.app 发送,而是使用开源 Thunderbird.app

        这是我的步骤:

        1. 将 html 模板复制到计算机的剪贴板。它应该包含所有的 head 和 body HTML 标签。 (正如其他人提到的,不要使用外部 CSS 文件,所有 CSS 都应该已经内联以支持所有邮件提供商)
        2. 打开 Thrunderbird.app(假设您已经设置了发送邮件的电子邮件帐户。)
        3. 创建新的空白电子邮件(文件 > 新建 > 消息)
        4. 在顶部栏中:插入 > HTML,然后粘贴到剪贴板上的内容
        5. 您可以编辑电子邮件中的任何内容,包括使用粗体、斜体、下划线工具栏。
        6. 如果您需要添加任何 HTML,例如添加指向某些文本的链接,突出显示该文本,然后转到“插入”>“HTML”。

        【讨论】: