2017-06-24 35 views
0

我發送排隊的文本郵件與laravel:UploadController.php的變化laravel 5.4文本郵件內容類型爲文本/無格式

部分:

public function postDelete(Request $request) 
{ 
    $upload = Upload::where('filename',$request->filename)->where('accepted',0)->delete(); 

    $this->image->deleteFromUploadFolder($request->filename); 

    Cache::forget('waiting_uploads'); 

    $msg = 'upload has been deleted'; 
    Mail::to('[email protected]')->queue(new TextMail($msg)); 

    return redirect('upload'); 
} 

可郵寄(TextMail.php):

<?php 

namespace App\Mail; 

use Illuminate\Bus\Queueable; 
use Illuminate\Mail\Mailable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Queue\ShouldQueue; 

class TextMail extends Mailable 
{ 
    use Queueable, SerializesModels; 

    protected $msg; 
    /** 
    * Create a new message instance. 
    * 
    * @return void 
    */ 
    public function __construct($msg) 
    { 
     $this->msg = $msg; 
    } 

    /** 
    * Build the message. 
    * 
    * @return $this 
    */ 
    public function build() 
    { 
     return $this->text('emails.empty') 
        ->subject($this->msg) 
        ->with('msg',$this->msg); 
    } 
} 

視圖empty.blade.php應僅打印消息:

{{ $msg }} 

但neomutt接收text/html的內容:

[-- text/html wird nicht unterstützt ('v' benutzen, um diesen Teil anzuzeigen) --] 

和Thunderbird還顯示文本/ HTML而不是純文本:

MIME-Version: 1.0 
Content-Type: text/html; charset=utf-8 
Content-Transfer-Encoding: quoted-printable 

我能做些什麼來獲取郵件,這樣neomutt不抱怨? 當使用Mail::send()時,我得到text/plain,但沒有得到Mail::queue()

回答

1

好的,只是邏輯上。 Laravel使用SwiftMailer。嘗試像這樣(cann`t檢查的那一刻):

Mail::send('emails.empty', ['msg'=>$msg], function ($message) { 
    $message->to(....) 
    ->subject(....) 
    ->getSwiftMessage() 
    ->getHeaders() 
    ->setContentType('text/plain'); 
}); 

說明:回調$message有方法getSwiftMessage(見.../Illuminate/Mail/Message.php)。通過對象SwiftMessage,我們獲得getHeaderssetContentTypeSwiftMailer's指定類別(請參閱../swiftmailer/source-class-Swift_Mime_SimpleMimeEntity)。

+0

郵件已發送,但仍爲text/html。 – haheute

+0

當我使用'Mail :: send()'我可以有'文本/純文本'但不與'Mail :: queue()'(都啓動Mailable) – haheute

+1

@haheute好的,顯示更多代碼。我確信可以「覆蓋」內容類型。 – voodoo417