ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Laravel在开发与生产中的“普遍性”

2019-06-27 19:17:34  阅读:232  来源: 互联网

标签:php laravel email laravel-5-2


我正在使用Laravel 5.2应用程序.在我的开发和登台环境中,我想使用“Universal To”邮件配置选项described in the docs.一个通用的开发环境可确保所有电子邮件都转到该地址,而不是真正的客户/客户/任何东西.

我无法弄清楚如何在生产中以不同的方式指定它.在制作中应该没有通用的电子邮件应该发送到真实地址.

使用不同env()值的标准方法似乎不起作用.例如:

配置/ mail.php:

'to' => [
    'address'   => env('UNIVERSAL_TO', false)
],

发展.env:

UNIVERSAL_TO=my-testing-address@somewhere.com

这很好 – 所有电子邮件都按预期转到指定的UNIVERSAL_TO.但是,如果我将其改为生产中我想要的,例如:

生产.env

UNIVERSAL_TO=

(或者=”,或者= false,或者完全忽略这一点),发送任何邮件都失败了(在storage / laravel.log中):

local.ERROR: exception ‘Swift_RfcComplianceException’ with message ‘Address in mailbox given [] does not comply with RFC 2822, 3.6.2.’ in path/to/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php:348

config / mail.php只是返回一个数组,所以我想我可以把它设置为变量,然后根据环境将’to’添加到它,就像这样:

$return = [ ... normal mail config array ... ];

if (!\App::environment('production')) {
    $return['to'] => [
        'address' => 'my-testing-address@somewhere.com'
    ];
}

return $return;

但这似乎有点…… hacky.有没有更好的办法?

解决方法:

我认为这应该工作 – 它将config(‘mail.to’)保留为null,除非设置了UNIVERSAL_TO.

'to' => env('UNIVERSAL_TO', false) ? [
    'address' => env('UNIVERSAL_TO'),
] : null,

标签:php,laravel,email,laravel-5-2
来源: https://codeday.me/bug/20190627/1307670.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有