设置电子邮件的语言

时间:2017-11-08 14:05:16

标签: php laravel email

我有警报系统,可以向用户发送电子邮件。如何根据用户偏好以语言发送电子邮件。

在用户表中,我有一列language。它存储用户选择的语言(' en',' de'等...)

我使用以下方式发送电子邮件:

public function handle(){
...
Mail::send('emails.newSearchAlert', ['u' => $u, 'results' => $results], 
    function ($m) use ($u) {

        $m->from('noreply@mydomain.tv', 'My company');
}

        $m->to($u->email)->subject('Your search alert - ' . $u->search);
    });

newSearchAlert我这样做:

@if(App::isLocale('de'))
    <h3>Ihr Alert</h3>
@elseif(App::isLocale('en'))
    <h3>Your campaign alert: </h3>

但它不起作用。我总是收到德语电子邮件。如何使用表格中的language列。

PS 我用这个包进行本地化: https://github.com/mcamara/laravel-localization

1 个答案:

答案 0 :(得分:1)

您必须在使用

发送电子邮件之前设置您的语言环境
App::setLocale($language);

其中$language是您从数据库加载的语言

我认为在你的情况下会是

App::setLocale($u->language);