【问题标题】:Can't send html email with laravel + mandrill无法使用 laravel + mandrill 发送 html 电子邮件
【发布时间】:2015-08-24 18:13:14
【问题描述】:

我正在使用 Laravel 4.2 和 mandrill 插件。这样我可以使用 laravel 语法 (swiftmailer) 发送电子邮件,并且邮件由 mandrill 发送。但是,我似乎无法发送 HTML 消息。它们显示为内部带有 htmltags 的文本电子邮件。有什么问题?

    //Send email    
    $emailName = $_POST['emailName'];
    $emailAddress = $_POST['emailAddress'];
    $emailSubject = $_POST['emailSubject'];
    $emailMessage = html_entity_decode($_POST['emailMessage']);
    $emailFrom = $_POST['emailFrom'];
    $emailFromName = $_POST['emailFromName'];
    $pathToAttachement = $_POST['pathToAttachement'];

    $data = array('emailAddress' => $emailAddress, 'emailName' => $emailName, 'emailSubject' => $emailSubject, 'emailFrom' => $emailFrom, 'emailFromName' => $emailFromName, 'pathToAttachement' => $pathToAttachement);
    Mail::send('admin.emails.blank', array('msg' => $emailMessage), function($message) use ($data)
    {
        $message->setContentType('text/html');
        $message->from($data['emailFrom'], $data['emailFromName']);
        $message->to($data['emailAddress'], $data['emailName'])->subject($data['emailSubject']);
        $message->attach($data['pathToAttachement']);

    });

【问题讨论】:

  • 你能显示/admin/emails/blank.blade.php中的内容吗?
  • 我只输出消息:{{{ $msg }}}
  • 我刚刚意识到我正在通过使用三个荣誉来逃避内容......感谢你的彼得姆。所以我把它改成了 {{ $msg }} 现在工作正常。愚蠢的错误。
  • 这正是我问你这个问题的原因
  • 你为什么用$_POST而不是Input::get()?当 Laravel 的 Mail::send 有一个邮件 HTML 内容的参数时,你为什么要 setContentType('text/html')(默认是 HTML,如果你愿意,你可以 Mail::send(array('html.view', 'text.view'), $data, $callback);)?

标签: php laravel swiftmailer mandrill


【解决方案1】:

在您的 blank.blade.php 模板中,确保使用双花括号,以免内容转义

{{ $msg }}

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 2015-04-11
    • 2014-09-30
    • 2015-02-12
    • 2015-11-05
    • 2014-09-18
    • 2019-08-05
    • 2016-02-28
    相关资源
    最近更新 更多