【问题标题】:Link in email CakePHP电子邮件中的链接 CakePHP
【发布时间】:2015-01-12 19:01:39
【问题描述】:

我想在使用 CakePHP 框架发送的正文电子邮件中添加应用程序链接, 不幸的是,所有链接都是用 localhost 生成的,所以我在配置文件中设置了“App.fullBaseUrl”参数。 但是我发现在配置文件中硬编码域名是不正确的。

是否有任何其他使用 cakePHP 的解决方案可以在电子邮件中添加带有域名的链接,而无需对域进行硬编码?

提前致谢,

【问题讨论】:

    标签: php email cakephp


    【解决方案1】:

    阅读整页,而不仅仅是前几段。您已经链接了正确的页面in your comment

    http://book.cakephp.org/2.0/en/console-and-shells.html#routing-in-shells-cli

    在命令行界面 (CLI) 中,特别是您的 shell 和任务中, env('HTTP_HOST') 和其他浏览器特定的环境变量 没有设置。

    如果您使用 Router::url() 生成报告或发送电子邮件 那些将包含默认主机http://localhost/,因此 导致无效的 URL。在这种情况下,您需要指定域 手动。您可以使用配置值 App.fullBaseURL 来做到这一点 例如,来自您的引导程序或配置。

    对于发送电子邮件,您应该向主机提供 CakeEmail 类 您要发送电子邮件:

    $Email = new CakeEmail(); $Email->domain(‘www.example.org’);这个 断言生成的消息 ID 是有效的并且适合域 电子邮件是从那里发送的。

    【讨论】:

      【解决方案2】:

      我觉得你可以用Router::url('/', true);

      希望对你有帮助!

      【讨论】:

      • 感谢您的回复,我将 $fule 参数设置为 true,但它不起作用,如 cakephp 文档中所述:“如果您生成报告或发送使用 Router::url( ) 这些将包含默认主机localhost,从而导致无效的URL。在这种情况下,您需要手动指定域“:请阅读此“book.cakephp.org/2.0/en/…
      【解决方案3】:

      你可以简单地写 -

      echo $this->Html->link('Click Here', array('controller' => 'your-controller', 'action' => 'your-action'), array('fullBase' => true));
      

      在您的电子邮件模板页面上。

      【讨论】:

        猜你喜欢
        • 2014-06-15
        • 2016-08-28
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 2011-09-13
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多