1. Go to this page and download the library: Download andrewdyer/mailer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
andrewdyer / mailer example snippets
use AndrewDyer\Mailer\Mailable;
use AndrewDyer\Mailer\Values\Address;
use AndrewDyer\Mailer\Values\Content;
use AndrewDyer\Mailer\Values\Envelope;
class WelcomeMail extends Mailable
{
public function __construct(private readonly User $user) {}
public function envelope(): Envelope
{
return new Envelope(
to: new Address($this->user->email, $this->user->name),
subject: 'Welcome to the platform!',
);
}
public function content(): Content
{
return new Content(
view: 'emails/welcome.html.twig',
data: ['user' => $this->user],
);
}
}
use AndrewDyer\Mailer\Mailer;
use AndrewDyer\Mailer\Drivers\SymfonyTransport;
use AndrewDyer\Mailer\Values\Address;
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
$twig = new Environment(new FilesystemLoader('/path/to/templates'));
$mailer = new Mailer(
twig: $twig,
transport: new SymfonyTransport('smtp://user:[email protected]:587'),
defaultFrom: new Address('[email protected]', 'My App'),
);
$mailer->send(new WelcomeMail($user));
use AndrewDyer\Mailer\Contracts\AttachableInterface;
use AndrewDyer\Mailer\Mailable;
class InvoiceMail extends Mailable implements AttachableInterface
{
public function __construct(private readonly Order $order) {}
public function envelope(): Envelope { /* ... */ }
public function content(): Content { /* ... */ }
public function attachments(): array
{
return [
'/storage/invoices/invoice-' . $this->order->id . '.pdf',
];
}
}
use AndrewDyer\Mailer\Values\Envelope;
use AndrewDyer\Mailer\Values\Address;
use AndrewDyer\Mailer\Enums\Priority;
new Envelope(
to: new Address('[email protected]', 'Recipient'),
subject: 'Hello!',
from: new Address('[email protected]', 'Sender'),
cc: [new Address('[email protected]')],
bcc: [new Address('[email protected]')],
replyTo: new Address('[email protected]'),
priority: Priority::Normal,
);
public function envelope(): Envelope
{
return new Envelope(
to: new Address($this->user->email, $this->user->name),
subject: 'Welcome to the platform!',
from: new Address('[email protected]', 'Support Team'),
);
}
public function envelope(): Envelope
{
return new Envelope(
to: new Address($this->user->email, $this->user->name),
subject: 'Welcome to the platform!',
cc: [new Address('[email protected]', 'Manager')],
bcc: [new Address('[email protected]')],
);
}
use AndrewDyer\Mailer\Enums\Priority;
public function envelope(): Envelope
{
return new Envelope(
to: new Address($this->user->email),
subject: 'Urgent: action
use AndrewDyer\Mailer\Drivers\SymfonyTransport;
$transport = new SymfonyTransport('smtp://user:[email protected]:587');
use AndrewDyer\Mailer\Contracts\TransportInterface;
use AndrewDyer\Mailer\PreparedMessage;
class CustomTransport implements TransportInterface
{
public function send(PreparedMessage $message): void
{
// Dispatch the message...
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.