定制 pendable/laravel-mailer 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pendable/laravel-mailer

最新稳定版本:v1.0.2

Composer 安装命令:

composer require pendable/laravel-mailer

包简介

Laravel package for sending mail via the Pendable API

README 文档

README

Provides Pendable integration for Laravel. This package utilizes the pendable-symfony mailer under the hood.

Pendable

Pendable provides a wrapper service around Amazon SES adding capabilities to Parallelize your Email Sending, Prioritize your Emails, Schedule delivery in the future, Track Open, Click and other events, Active throttling based on your Bounces and Complaints, Filter Spam Domains, Maintain a healthy Contact list, Retrieve, Troubleshoot, and Resend messages, Timeline view of all customer communication.

More info on pendable.io

Installation

Open a command console in your project directory and execute the following command to download the latest stable version of this bundle:

$ composer require pendable/laravel-mailer

Then add your pendable api key to your .env file

# Pendable API Key from https://pendable.io
PENDABLE_API_KEY=your-api-key

# Use the pendable mailer 
MAIL_MAILER=pendable

Usage

The Pendable Mailer provides a drop-in replacement for the Laravel Mailer. To send a message just simply use the Mail facade as you would normally do.

Mail::to('my-email@example.com')->send(new MyMailable);

Advanced Usage

Setting options on runtime

// Laravel mailable instance
$mailable = new MyMailable;

// adding tags
$mailable->tag('my-tag-1');
$mailable->tag('my-tag-2');

// adding custom fields
$mailable->metadata('custom_1', 'one');
$mailable->metadata('custom_2', 'two');

$mailable->withSymfonyMessage(function(Email $message){

    // set the priority
    $message->getHeaders()->addTextHeader('priority', 60);

    // set the config identifier
    $message->getHeaders()->addTextHeader('config_identifier', 'my-config');

    // set the client email id (usually your system's unique identifier)
    $message->getHeaders()->addTextHeader('client_email_id', '1');

    // set the schedule send at (in ISO 8601 format)
    $message->getHeaders()->addTextHeader('schedule_send_at', '2023-06-25T22:37:26+05:30');
});


// send the mail
Mail::to('my-email@example.com')->send($mailable);

Setting options on the mailable class itself

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Headers;
use Illuminate\Queue\SerializesModels;
use Illuminate\Mail\Mailables\Envelope;

class MyMailable extends Mailable {

    use Queueable, SerializesModels;

    public function headers(): Headers
    {
        return new Headers(
            text: [
                // set the priority
                'priority' => '60',
                
                // set the config identifier
                'config_identifier' => 'my-config',
                
                // set the client email id (usually your system's unique identifier)
                'client_email_id' => '1',
                
                // set the schedule send at (in ISO 8601 format)
                'schedule_send_at' => '2023-06-25T22:37:26+05:30',
            ],
        );
    }

    /**
     * Get the message envelope.
     */
    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'My Mailer from Laravel + Pendable',
            
            // Setting tags
            tags: ['test', 'mailer', 'laravel'],
            
            // Setting custom fields
            metadata: [
                'custom_1' => 'one',
                'custom_2' => 'two',
            ],
        );
    }
    
    // ... 
}

# To send the mail
Mail::to('my-email@example.com')->send(new MyMailable);

Resources

统计信息

  • 总下载量: 656
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-08-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固