我想在正文电子邮件中添加应用程序链接,使用CakePHP框架发送,不幸的是所有的链接都是用本地主机生成的,所以我在配置文件中设置了"App.fullBaseUrl“参数。但是我发现在配置文件中硬编码域名是不合适的。
有没有其他的解决方案,通过cakePHP在电子邮件中添加带有域名的链接,而无需对域名进行硬编码?
提前谢谢你,
发布于 2015-01-13 04:01:39
阅读整个页面,而不仅仅是前几段。您已经链接了右侧页面的in your comment。
http://book.cakephp.org/2.0/en/console-and-shells.html#routing-in-shells-cli
未设置命令行界面中的
,特别是shells和任务、环境(‘HTTP_HOST’)和其他特定于set浏览器的环境变量。
如果您使用Router::url()生成报告或发送电子邮件,则这些报告或电子邮件将包含默认主机http://localhost/,从而导致无效的url。在这种情况下,您需要手动指定域。例如,您可以使用引导或配置中的配置值App.fullBaseURL来执行此操作。
对于发送电子邮件,您应该为CakeEmail类提供您想要发送电子邮件的主机:
$Email = new CakeEmail(); $Email->domain(‘www.example.org’);这会断言生成的邮件ID是有效的,并且适合发送电子邮件的域。
发布于 2015-01-13 03:10:13
我认为你可以使用Router::url('/', true);
希望它能帮上忙!
发布于 2015-01-13 19:20:08
你可以简单地写-
echo $this->Html->link('Click Here', array('controller' => 'your-controller', 'action' => 'your-action'), array('fullBase' => true));在您的电子邮件模板页面上。
https://stackoverflow.com/questions/27908932
复制相似问题