PHP code example of zeus / email

1. Go to this page and download the library: Download zeus/email 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/ */

    

zeus / email example snippets



use Zeus\Email\CommandSender;
use Zeus\Email\SmtpAuthenticator;

p.io",
    "your_username",
    "your_password",
    2525,
    10,
    [
        "ssl" => [
            "verify_peer" => false,
            "verify_peer_name" => false,
            "allow_self_signed" => true
        ]
    ]
);

Mail::setSmtpAuthenticator($smtpAuthenticator); // Set it once

class WelcomeMail implements EmailFactoryInterface
{
    public function build(EmailBuilder $builder): void
    {
        $builder->setSubject("Welcome to Our Website");
        $builder->setHtmlBody('<html><body><h1>Welcome!</h1><p>This is a test email with an attachment.</p></body></html>');
        $builder->addCc('[email protected]');
        $builder->addBcc('[email protected]');
        $builder->setReplyTo('[email protected]');
        $builder->addAttachment(__FILE__);
    }
}

$response = Mail::to('[email protected]')
    ->from('[email protected]')
    ->send(new Payment());

if ($response) {
    echo "✅ Email sent successfully";
} else {
    echo "❌ Failed to send email";
}


class Logger implements \Zeus\Email\EmailLogInterface
{
    public function log(string $message,int $level)
    {
       //log operations
    }
}

$mail = Mail::to('[email protected]');

$mail->from('[email protected]')
    ->logTo(new Logger())
    ->beforeSend(function (EmailBuilder $builder) {
        $builder->addCc('[email protected]');
    })
    ->afterSend(function () {
        //trigger an event
    })
    ->send(new Payment());


class Payment implements EmailFactoryInterface
{
    /**
     * @throws Exception
     */
    public function build(EmailBuilder $builder): void
    {
        $builder->setSubject("Welcome to Our Website");
        $builder->setBody('Test a message');
        $builder->scheduleAt(new DateTime('last day of this month'));
    }
}

$builder->scheduleAt(new DateTime('2025-04-01 09:00:00'));

class Payment implements EmailFactoryInterface
{
    /**
     * @throws Exception
     */
    public function build(EmailBuilder $builder): void
    {
        $builder->setSubject("Welcome to Our Website");
        $builder->setBody('Test a message');
        $builder->setDelay(new Delay()->addHour(1)->addMinute(15));
    }
}

class Payment implements EmailFactoryInterface
{
    /**
     * @throws Exception
     */
    public function build(EmailBuilder $builder): void
    {
        $builder
            ->setSubject("Welcome to Our Website")
            ->setBody('Test a message');
            ->setDelay(new Delay()->addHour(1)->addMinute(15))
            ->dd();
    }
}

$builder->setDelay(new Delay()->addHour(2)->addMinute(30));

class X implements EmailFactoryInterface
{
    public function build(EmailBuilder $builder): void
    {
        $builder
            ->setSubject('Test Email')
            ->setBody('This is a test email');
    }
}

$bulkReceiver = new BulkReceiver();
$bulkReceiver->addReceiver('[email protected]', 'john');
$bulkReceiver->addReceiver('[email protected]', 'jane');
$bulkReceiver->addReceiver('[email protected]', 'jim');

$mail = Mail::to($bulkReceiver)
    ->from('[email protected]');

$mail->send(new X());

    $bulkReceiver->addReceiver('[email protected]', 'john');
    

    $mail = Mail::to($bulkReceiver);
    

$bulkReceiver = new BulkReceiver();
$bulkReceiver->addReceiver('[email protected]', 'John Doe');
$bulkReceiver->addReceiver('[email protected]', 'Jane Smith');
$bulkReceiver->addReceiver('[email protected]', 'Jim Brown');