簡體   English   中英

使用自定義HTML在Laravel中發送電子郵件

[英]Sending e-mail in Laravel with custom HTML

我需要發送電子郵件,但我已經生成了HTML,我不想使用laravel blade,因為我需要將CSS內聯器應用於HTML,所以這就是我生成html的方式:

getRenderedView($viewData) {
    //code
    $html =  View::make('email.notification', $viewData)->render();
    $this->cssInliner->setCSS($this->getCssForNotificationEmail());
    $this->cssInliner->setHTML($html);
    return $this->cssInliner->convert();
}

因此,要使用Laravel發送郵件,您通常會執行以下操作:

Mail::send('emails.welcome', $data, function($message)
{
    $message->to('foo@example.com', 'John Smith')->subject('Welcome!');
});

但是我不想傳遞視圖,我已經有了html,我該怎么做?

如果我對你想要實現的目標是正確的,為了解決這個問題,我創建了一個名為echo.php的視圖,其中只有echo $ html。

將你的html分配給$ data ['html']。

然后將$ data ['html']傳遞給echo視圖。

Mail::send('emails.echo', $data, function($message) { $message->to('foo@example.com', 'John Smith')->subject('Welcome!'); });

讓我知道你是怎么辦的。

我想分享一個提示,可能有助於發送沒有“刀片”的電子郵件。

Laravel Mail函數實際上是Swift的包裝器。 只需將空數組分配給$ template和$ data,我的意思是函數的前2個參數,然后在回調中進行其余的操作。

Mail::send([], [], function($message) use($to, $title, $email_body)
{
    $message->setBody($email_body)->to($to)->subject($title);
});

從封閉處無法進入車身。

您可以手動創建swift消息:

    $message = \Swift_Message::newInstance();
    $message->setFrom($messageToParse->template['fromEmail']);
    $message->setTo($messageToParse->to['email']);
    $message->setBody($messageToParse->body);
    $message->addPart($messageToParse->body, 'html contents');
    $message->setSubject('subject');

但是你需要創建傳輸:

    $mailer = self::setMailer( [your transport] );
    $response =  $mailer->send($message);
$data = array( 'email' => 'sample@domail.com', 'first_name' => 'Laravel', 
        'from' => 'sample@domail.comt', 'from_name' => 'learming' );

Mail::send( 'email.welcome', $data, function( $message ) use ($data)
{
 $message->to( $data['email'] )->from( $data['from'], 
 $data['first_name'] )->subject( 'Welcome!' );
 });

在你的控制器中:

Mail::to("xyz.gmail.com")->send(new contactMailAdmin($userData));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM