Об использовании возможностей Sendgrid-а

mstdmstd

Новичок
Всем привет,

Для отправки сообщений в Laravel 5 приложениях я использовал плагины

snowfire/beautymail - удобен что файл темплейта хранится в .blade.php формате но минусы что я не нашел в нем аттач файлов и последлние обновления на нем были 4 года назад
themsaid/laravel-mail-preview - удобен что для превью отправленный мейл сохраняется на диске без настройки smtp локально

Ищу современные средства и наткнулся на сервер Sendgrid с использованием плагина s-ichikawa/laravel-sendgrid-driver
Для отправки мейла с локального сервера(без настройки smtp локально) я сделал следующее
1) зарегился на Sendgrid м получил SENDGRID_API_KEY
2) создал файл темплейта resources/views/mailBlade.blade.phpс использованием переменных как в blade
Код:
Hello, {!! $to_user_first_name !!} {!! $to_user_last_name !!} !
3) Создал файл с классом app/Mail/SendgridMail.php :
Код:
<?php

namespace App\Mail;

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

class SendgridMail extends Mailable
{
    use Queueable, SerializesModels;
    use SendGrid;

    private  $m_view_name;
    private  $m_to;
    private  $m_subject;
    private  $m_additiveVars;

    public function __construct( $view_name, $to= [], $subject= '', $additiveVars= [] )
    {
        $this->m_view_name= $view_name;
        $this->m_to= $to;
        $this->m_subject= $subject;
        $this->m_additiveVars= $additiveVars;
    }

    public function build( )
    {
        return $this
            ->view( $this->m_view_name)
            ->subject($this->m_subject)
            ->to([$this->m_to])
            ->with( $this->m_additiveVars )
            ->sendgrid( $this->m_additiveVars );
    }
}
4) Для отправки мейла с моего контрола :
Код:
        $subject= 'My site subject lorem...';
        $val1= ' $val1 lorem value';
        $val2= ' $val1 lorem value';
        $additiveVars= ['name'=> 'man At home', 'val1' => $val1, 'val2' => $val2];
        \Mail::to($to)->send( new SendgridMail( 'mailBlade', $to, $subject , $additiveVars ) );
И что приятно, так это что емейл приходит на $to даже с локального компа.
5) Мне понадобилось разукрасить мейлы(по умолчанию они выглядят совсем уныло).
Для этого в каждом темплейте я добавил строку
Код:
@include( 'emails.emails_style')
И в файле resources/views/emails/emails_style.blade.php :
Код:
<link href='http://fonts.googleapis.com/css?family=Oxygen:400,300' rel='stylesheet' type='text/css'>
<style>
body {
font-family: sans-serif, arial;
}
...
</style>
Поскольку если делать обычную ссылку на .css-файл то она не будет доступна у клиента получившего емейл .
И вопрос а как добавить в теле этого емейла картинку? Как ссылку на наш live-сайт или можно сделать как-то иначе ?

6) Но я подозреваю что это далеко не все возможности Sendgrid-а ? У меня сейчас приложения с клиентами в начальной стадии разработки.
Подскажите, популярно, что в Sendgrid может быть еще полезно? Я конечно гуглил но то что находил как-то смутно или очень старые статьи.
Например https://coba.tools/sendgrid,
Там в частности упоминаются два типа email-рассылок маркетинговые и транзакционные
А какое это имеет отношение к отправляемым способом выше письмам ?

3) >>> Создавать письма можно на основе блочного редактора с опцией Drag & Drop или с помощью html,
Это создавать мейлы на самом сервере типа как делаетсся в mailchimp?
Я нашел тут возможность добавлять емейлы на сервере
https://imgur.com/a/raWK7bY
Или это только статический текст без возможности использовать данные из моей базы ?

Сорри за несвязное письмо - хочется расширить использование возможностей Sendgrid-а - не очень понятно как ?

Спасибо!
 

mstdmstd

Новичок
убрав @ и скобки с includ-а адругих возможностей нет ? Никто с Sendgrid-ом (или его аналогами) не работал ?
 

fixxxer

К.О.
Партнер клуба
Мне понадобилось разукрасить мейлы
Мейлы - это не веб-страницы, там надо использовать "безопасное" для емейлов подмножество HTML. В частности, все стили надо инлайнить. Про подключение шрифтов вообще забудь думать.

На сайте того же Sendgrid-а хороший список рекомендаций - https://sendgrid.com/docs/ui/sending-email/cross-platform-html-design/

Кто-то из конкурентов Sendgrid-а (вроде Mailchimp) умеет инлайнить стили автоматически. Ну можно и самому, вот первое что нагуглилось https://github.com/tijsverkoyen/CssToInlineStyles

возможности Sendgrid-а
Любой sengrid-драйвер фактически реализует клиент Sendgrid V3 API: https://sendgrid.com/docs/API_Reference/api_v3.html - что описано в документации на API, то и есть его возможности. В драйверах обычно есть соответствующие методы.
без возможности использовать данные из моей базы
Там есть такая штука - personalizations.
 
Последнее редактирование:
Сверху