2016-08-01 11 views
0

私はプロジェクトにlaravel 5フレームワークを使用しており、ユーザーが電子メールメッセージを作成できるという特徴があります。しかし、私は私の電子メールで私はhtmlタグを持ってそれをテストします。ユーザーが電子メールから受信する壊れたメールテンプレート

<p> <small>Julius Cesar</small></p><p><small>Julius</small></p><p><small> Cesar<br></small></p><p><small>[email protected] </small> <br></p> 

予想される出力は次のようになります。

Julius Cesar 
Julius 
Cesar 
[email protected] 

私はそれがそのように行く理由はわかりません。ここで私のコードはlaravelです。 eblast-form.blade.php

<form action=" {{ url('app/esetting/emailblast') }} " id="eblast-form" method="post"> 
    {{ csrf_field() }} 
    <div class="box-body"> 
     <div class="form-group {{ $errors->has('subject') ? 'has-error' : '' }}"> 
      <label for="subject" class="control-label col-sm-2">Subject</label> 
      <div class="col-sm-10"> 
       <input type="text" name="subject" class="form-control" id="subject" placeholder="Subject" value="{{ old('subject') }}" required="required" /> 
      </div> 
     </div> 
     <br><br> 
     <div class="form-group {{ $errors->has('message') ? 'has-error' : '' }}"> 
      <label for="message" class="control-label">Email Message Content</label> 
      <div class="col-sm-12"> 
       <textarea class="form-control" name="message-cont" id="message" required> 
        {{ old('message') }} 
       </textarea> 
       <p><small> [fullname] [first_name] [last_name] [email] </small></p> 
       <input type="hidden" id="msg" name="message" value=""> 
      </div> 
     </div> 
    </div> 
    <br> 

    <br> 
    <div class="box-footer"> 
     <div class=" pull-right"> 
     <button type="submit" class="btn btn-info " id="send-mail">Send</button> 

     </div> 
    </div> 
</form> 

これは、電子メールを送信し、私のコントローラのメソッドである:

public function postEmailblast(Request $request) 
    {   
     .... 
     $user = Auth::user(); 
     $message = $request->input('message'); 
     $m_user = User::find($egm->user_id); 
     $rep_this = array(
      "[fullname]", 
      "[first_name]", 
      "[last_name]", 
      "[email]" 
     ); 
     $rep_with = array(
      $m_user->common_name, 
      $m_user->first_name, 
      $m_user->last_name, 
      $m_user->email 
     ); 
     $data = array(
      'email_content' => str_replace($rep_this, $rep_with, $message), 
     ); 

     Mail::send('emails.e-blast', $data, function ($message) use ($request, $user, $m_user) { 

      $message->from($user->email, $user->common_name)->to($m_user->email, $m_user->common_name)->subject($request->input('subject')); 

     }); 
     .... 
    } 

これはemails.e-blast/emails.e-blast.blade.php

の電子メールテンプレートであることの表示がフォームを表示するため です
<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
{{$email_content}} 
</body> 
</html> 

誰かが私のケースについて考えていますか?

答えて

1

また、単純にかかわらず、安全性の低いソリューションについては

<body> 
{!!$email_content!!} 
</body> 

代わりの

<body> 
{{$email_content}} 
</body> 

を使用することができます。

0

ないあなたは、特定の理由が、私の意見ではこれをしなかった場合、問題はここにあなたがあなたを構築するために、ブレードのテンプレートを使用する必要があります

<body> 
{{$email_content}} 
</body> 

の代わりに貼り付け電子メールの内容を(ところで。あなたはそれをエスケープ)あることを確認メールだけでなく、コンテンツを受信します。だからではなく、emails.e-blast.blade.php

... 
<body> 
<p><small>{{$common_name}}</small></p> 
<p><small>{{$first_name}}</small></p> 
<p><small> {{$last_name}}</small></p> 
<p><small>{{$email}} </small></p> 
</body> 
... 

としてこれを使用して、メールに

$data = array(
    'common_name' => "Julius Caesar" 
    'first_name' => "Julius", 
    'last_name' => "Caesar", 
    'email' => "[email protected]" 
); 

Mail::send('emails.e-blast', $data, function ($message) use ($request, $data, $m_user) { 

    $message->from($data->email, $data->common_name)->to($m_user->email, $m_user->common_name)->subject($request->input('subject')); 

}); 

を送信する際に、今、あなたの$データにこれらの変数を渡す私は、コードをテストしていないが、私はあなたがそのアイデアを得ることを望みます。