【问题标题】:sending a long link in an email using PHP使用 PHP 在电子邮件中发送长链接
【发布时间】:2011-06-01 13:33:03
【问题描述】:

我正在尝试实现一个网站,其中包括让用户邀请其他用户访问特定页面。不幸的是,这些页面的链接地址相当长,并且经常超过 70 个字符的限制。因此,当我将它们添加到邮件中时,即使我在链接之前开始新行,链接地址仍然会被中途切断,然后电子邮件客户端(例如 gmail)假定链接在行尾结束。所以当用户点击链接时,他们会觉得它是坏掉的。

我正在用 PHP 编写所有这些代码,但问题似乎很普遍。

这个问题的标准解决方案是什么?

【问题讨论】:

  • 没有标准解决方案。您可以发送 HTML 电子邮件并在那里使用 <a> 标记或为您的页面实施某种短 url 服务。

标签: php email hyperlink


【解决方案1】:

您可以使用 URL 缩短器来重定向到较长的链接。 Bit.ly 有an API,您的代码可以为此目的与之交互。

【讨论】:

    【解决方案2】:

    不知道有没有更好的解决方案,不过你可以用http://yourls.org/或者其他工具来实现一个网址缩短器...

    【讨论】:

      【解决方案3】:

      创建您自己的 URL 缩短解决方案。根据需求的复杂程度,您可以采用多种方式:

      • 如果您只使用几个总是重复的选定 url,请使用 apache rewrite
      • 如果 url 是用户特定的或因情况而异,请使用存储短 url 和原始 url 的数据库表
      • 如果您不想或无法实现自己的解决方案,请通过 API 使用现有的 url 缩短服务,但请确保不要暴露安全相关信息

      【讨论】:

        【解决方案4】:

        将 URL 放在 <> 括号中。大多数邮件客户端都会正确解析 URL 并使其可点击,即使在包装时也是如此。

        <http://www.somereallylongdomain.com/somereallylongdirectory/somereallylongfilename.html>
        

        【讨论】:

        • 有趣。实际上我对此负责: $message=wordwrap ( $message, 70,"\n",true);
        • 我只是将“true”更改为“false”,现在似乎已经足够了: $message=wordwrap ( $message, 70,"\n",false);但令我惊讶的是,在 2010 年我们仍然遇到这些问题
        猜你喜欢
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        • 2013-10-27
        • 2015-11-18
        • 2012-02-04
        • 2017-05-05
        • 2016-04-04
        • 1970-01-01
        相关资源
        最近更新 更多