1. Go to this page and download the library: Download tobento/app-mail 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/ */
tobento / app-mail example snippets
use Tobento\App\AppFactory;
use Tobento\Service\Mail\MailerInterface;
use Tobento\Service\Mail\MailersInterface;
use Tobento\Service\Mail\RendererInterface;
use Tobento\Service\Mail\MessageFactoryInterface;
use Tobento\Service\Mail\QueueHandlerInterface;
use Tobento\Service\Mail\Symfony\EmailFactoryInterface;
// Create the app
$app = (new AppFactory())->createApp();
// Add directories:
$app->dirs()
->dir(realpath(__DIR__.'/../'), 'root')
->dir(realpath(__DIR__.'/../app/'), 'app')
->dir($app->dir('app').'config', 'config', group: 'config')
->dir($app->dir('root').'public', 'public')
->dir($app->dir('root').'vendor', 'vendor');
// Adding boots
$app->boot(\Tobento\App\Mail\Boot\Mail::class);
$app->booting();
// Implemented interfaces:
$mailer = $app->get(MailerInterface::class);
$mailers = $app->get(MailersInterface::class);
$renderer = $app->get(RendererInterface::class);
$messageFactory = $app->get(MessageFactoryInterface::class);
$queueHandler = $app->get(QueueHandlerInterface::class);
$emailFactory = $app->get(EmailFactoryInterface::class);
// Run the app
$app->run();
use Tobento\Service\Mail\MailerInterface;
use Tobento\Service\Mail\Message;
class SomeService
{
public function send(MailerInterface $mailer): void
{
$message = (new Message())
// you may set a from address overwriting
// the defaults defined in the mail config file
->from('[email protected]')
->to('[email protected]')
//->cc('[email protected]')
//->bcc('[email protected]')
//->replyTo('[email protected]')
->subject('Subject')
//->textTemplate('welcome-text')
//->htmlTemplate('welcome')
//->text('Lorem Ipsum')
->html('<p>Lorem Ipsum</p>');
$mailer->send($message);
}
}
use Tobento\App\Mail\TemplatedMessage;
use Tobento\App\Mail\Block;
use Tobento\Service\Mail\MailerInterface;
class SomeService
{
public function send(MailerInterface $mailer): void
{
$message = (new TemplatedMessage())
// you may set a from address overwriting
// the defaults defined in the mail config file
->from('[email protected]')
->to('[email protected]')
//->cc('[email protected]')
//->bcc('[email protected]')
//->replyTo('[email protected]')
->subject('Subject')
//->textTemplate('welcome-text')
//->htmlTemplate('welcome')
//->text('Lorem Ipsum')
//->html('<p>Lorem Ipsum</p>')
// Building message using content block methods:
// Headings:
->h1('First heading')
->h2('Second heading')
->h3('Third heading')
->h4('Fourth heading')
->h5('Fifth heading')
->h6('Sixth heading')
// Thematic Horizontal Break:
->hr(
size: 'l', // 's', 'm' or 'l'
attributes: ['class' => 'my-m'] // you may set margins
)
// Content:
->txt('Lorem ipsum')
->htmlBlock('<br>') // must be escaped!
// Link and button:
->link(
url: 'https://example.com',
label: 'Label',
attributes: ['class' => 'text-xl'] // you may add classes
)
->button(
url: 'https://example.com',
label: 'Label',
attributes: ['class' => 'text-xl']
)
// Image:
->image(
src: 'https://example.com/image.jpg',
// or \Psr\Http\Message\StreamInterface;
// or \Tobento\Service\Filesystem\File;
alt: 'Alternative Text',
width: 200, // you may set a width
height: 200, // you may set a height
mimeType: 'image/jpeg' // optional, for stream src
use Tobento\App\Mail\TemplatedMessage;
$amount = 5;
$message = (new TemplatedMessage())
->txt("Amount paid: {$amount}", render: $amount > 0);
use Tobento\Service\Mail\MailerInterface;
use Tobento\Service\Mail\Message;
use Tobento\Service\Mail\Parameter;
class SomeService
{
public function send(MailerInterface $mailer): void
{
$message = (new Message())
->to('[email protected]')
->subject('Subject')
->text('Lorem Ipsum')
->parameter(new Parameter\Queue(
// you may set a specific queue,
// otherwise the default will be used.
name: 'mails',
// you may specify a delay in seconds:
delay: 30,
// you may specify how many times to retry:
retry: 3,
// you may specify a priority:
priority: 100,
// you may specify if you want to encrypt the message:
encrypt: true,
// you may specify if you want to render the message templates
// before queuing:
renderTemplates: false, // true default
));
$mailer->send($message);
}
}
app/config/mail.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.