【问题标题】:mailto links in GmailGmail 中的 mailto 链接
【发布时间】:2011-06-10 03:10:32
【问题描述】:

我在使用 Gmail 的网络应用程序时遇到了问题。出于某种原因,当我尝试将正文添加到链接中时,mailto 链接不起作用。只要不使用正文的 & 分隔符,链接就可以正常工作。

例如:

href="mailto:?subject=test&body=this is a test" - 不起作用

href="mailto:?subject=testbody=this is a test" - 确实有效,但显然,它不会产生预期的结果,因为一切都与主题有关。

我运行的是 64 位的 Vista,我尝试过 FF、Chrome 和 IE。另外,我注意到 Gmail 在我的 Gmail 帐户和 Google Apps 帐户中呈现邮件的方式有所不同。

当我在 iPhone 和 Outlook 上查看同一封电子邮件时,一切似乎都正常。

任何帮助将不胜感激。

【问题讨论】:

  • 当您使用& 而不是& 时会发生什么?
  • 同样的事情,我试过了 & %26 和 &amp/ 但它们都产生了相同的结果。
  • mailto: 带有参数的链接首先是一个非标准化、不可靠的东西。如果除了 GMail 之外还有更多的应用程序不能正确支持它们(出于安全考虑,甚至可能是故意的),我不会感到惊讶。我会避开它们,并为您的目标寻找更可靠的解决方案。

标签: html email hyperlink gmail mailto


【解决方案1】:

跨浏览器的完整 mailto 链接语法

<a href="mailto:info@example.com?subject=subject&cc=cc@example.com">mail link</a>

以下是您可以在 mailto 链接中使用的变量:

mailto: 设置收件人,或多个收件人,用逗号分隔

&amp;cc= 设置抄送收件人

&amp;bcc= 设置密件抄送收件人

&amp;subject= 设置邮件主题,URL 编码较长的句子,所以用 %20 替换空格等

&amp;body= 设置邮件正文,您可以在此处添加整个句子,包括换行符。换行符应转换为 %0A。

一些邮件链接示例

<a href="mailto:email-to@gmail.com?cc=email-cc@gmail.com&bcc=email-bcc@gmail.com&subject=Subject Using Mailto.co.uk&body=Email Using Body">Email-Link</a>

多个收件人:

<a href="mailto:first@email.address,second@email.address,third@email.address">Contact Us</a> 

在线生成链接http://www.mailto.co.uk/

【讨论】:

    【解决方案2】:

    我可以使用完整的 url 在 gmail 界面上填充所有内容:

    https://mail.google.com/mail/u/0/?view=cm&amp;fs=1&amp;tf=1&amp;to=target@email.com&amp;subject=MISSED%20CALL%20EZTRADER&amp;body=Hello%2C%0A%0AI%20tried%20contacting%20you%20today%20but%20you%20seem%20to%20have%20missed%20my%20call.%20%0A%0APlease%20return%20my%20call%20as%20soon%20as%20you%E2%80%99re%20available.%20%0A%0AIn%20any%20case%2C%20I%20will%20try%20ringing%20you%20at%20a%20later%20time.%0A%0A%0ATy%2C%0A%0A%0A%0A

    但我仍然无法填充主题行。我还在调查,是否有人有答案或知道 url 上的 gmail 编码参考?

    【讨论】:

    • 当使用完整的 url 在 gmail 上填充电子邮件时,请使用上面的链接,但对于主题行,请使用 &su= 而不是 &subject。
    【解决方案3】:

    dude,即使我没有编码“&”,但是我替换了以下字符,然后将电子邮件正文和主题传递给 mailto,它确实对我有用。希望这能给您带来一些想法。

    body = body.replaceAll("\\\\", "%5C");
    body = body.replaceAll(" ", "%20");
    body = body.replaceAll("\r", "%0D");
    body = body.replaceAll("\n", "%0A");
    body = body.replaceAll("\t", "%09");
    

    【讨论】:

      【解决方案4】:

      试试href="mailto:?subject=test&amp;body=this+is+a+test"

      【讨论】:

        【解决方案5】:

        在 Firefox 19 中测试 - 工作正常。
        在 Chrome 中,您需要安装一个扩展程序才能使其正常工作。

        我测试的页面 - https://dl.dropbox.com/u/60854445/mail.html
        Chrome 扩展 - https://chrome.google.com/webstore/detail/mailto-for-gmail/dgkkmcknielgdhebimdnfahpipajcpjn/

        也许他们已经修好了。

        【讨论】:

          【解决方案6】:

          正如您在RFC 2368 中看到的,这根本不可能:

          特殊的hname“body”表示关联的hvalue是消息的主体。 “body” hname 应包含消息的第一个文本/纯正文部分的内容。 mailto URL 主要用于生成实际上是自动处理内容的短文本消息(例如邮件列表的“订阅”消息),而不是一般的 MIME 正文。

          【讨论】:

            【解决方案7】:
            try this
            <a href="mailto:email@echoecho.com?subject=SweetWords&body=Please send me a copy of your new program!">Email Me</a>
            

            【讨论】:

              【解决方案8】:

              考虑将空格换成 %20。 另外,格式问题是什么?或者更好的清晰度会有所帮助。您说“mailto 链接不起作用”和“Gmail 将我的邮件呈现在我的 Gmail 帐户和 Google Apps 帐户中”。是否发送它,如果它发送给两者,具体有什么区别。

              【讨论】:

                【解决方案9】:

                我一直在努力找出为什么 &amp;subject=Gmailhref 中不起作用。


                所以我找到了这个&amp;su= 来让subject工作。

                见下例:

                href="https://mail.google.com/mail/?view=cm&fs=1&tf=1&to={{test@gmail.com}}&su=Subject&body=Body%20Text"
                

                %20 - space
                
                %0A - new line
                

                【讨论】:

                  猜你喜欢
                  • 2011-12-14
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-11-05
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-30
                  • 2013-11-01
                  • 2022-11-04
                  相关资源
                  最近更新 更多