如何在使用summernote和laravel发送html电子邮件时阻止htmlentites?

时间:2015-07-30 10:25:57

标签: angularjs email laravel summernote

我遇到了Laravel 5.1和summernote的问题。我正在使用summernote撰写一封电子邮件,我将通过angular.js发送到laravel 5.1 API。

我已尽可能多地调试,但似乎无法通过正确呈现的HTML代码发送电子邮件。

消息来源正确显示该电子邮件是以HTML格式发送的,但不知何故,电子邮件正文仍然被转换为htmlentities,当收到时,电子邮件正文中显示了当时的HTML代码。

我在Laravel的邮件发送命令如下。

$params = json_decode(file_get_contents('php://input'),true);
$body = $params['body'];

$to_address = $params['to'];
$subject = $params['subject'];

Mail::send(['html' => 'emails.send_email'], ['body'=>$body], function ($message) use ($to_address, $subject){
        $message->from($to_address);
        $message->subject($subject);
        $message->to($to_address);

});

我在summernote中试过的正文正文很简单,

Test

Test

正在进行中

test<br>test

消息来源中有此消息导致我遇到了htmlentities问题。

Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<body>
test&lt;br&gt;&lt;br&gt;test&lt;br&gt;
</body>

用于收集summernote详细信息的Angular.js代码

sendEmail($scope.to, $scope.subject, $scope.body).then(function(){
            // Clear out the compose
            $scope.subject = '';
            $scope.body = '';

            $scope.success_message_sent = true;
        }); 

然后是发送功能

    $scope.sendEmail = function(to, subject, body) {

    var deferred = $q.defer();

    var data = {
        'to': to,
        'subject': subject,
        'body': body
    };

    $http.post('http://'+ remoteServer +'/api/send_email', data)
        .success(function() { deferred.resolve(); })
        .error(function() { deferred.reject("Failed to send message");
    }); 

    return deferred.promise;

我正在使用Mandrill发送电子邮件。

非常感谢任何协助。

由于

1 个答案:

答案 0 :(得分:1)

我认为此问题来自您的模板:

emails.send_email.blade.php使用{!! $body !!}以防止出现问题