phore/mail

Installs: 8 465

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 0

Open Issues: 0

Language:Shell

v0.1.5 2023-06-26 17:24 UTC

This package is auto-updated.

Last update: 2024-03-26 19:19:15 UTC


README

A template wrapper around the famous PHPMailer Mailer class and the text/template template system.

  • Single Class
  • Multipart Mime
  • Testing using mailtrap.io

Demo template

{mail to="abc@abc.de" name="Some Name"}
{mail from="sender@address.de" name="Me"}
{mail cc="mail@email" name="Some Name"}
{mail bcc="mail@email" name="Some Name"}
{subject}Hello {=name} - You are the welcome{/subject}

{html}
    <body>
        <b>Hello {= name}</b>,
        <p>
            This HTML Mime Mail
        </p>
    </body>
{/html}

Hello {= name},

This is the alternative Text body

Available mail parameters

Parameter Name Default
charset
to
from
cc
bcc

Script for sending a mail

With auto-failover to second SMTP-Server.

$mailer = new PhoreMailer();
$mailer->config([
    "Host"      => "smtp1.example.org;smtp2.example.org",
    "Username"  => "user@example.org",
    "Password"  => "secret", 
    "SMTPAuth"  => true
]);
$mailer->send($templateText, ["name"=>"Joe Doe"]);

Installation

composer require phore/mail

Configuring PHPMailer / text-template

$mailer = new PhoreMailer();
$mailer->phpmailer->phpMailerFunction();
$mailer = new PhoreMailer();
$mailer->textTemplate->textTemplateFunction();

Sending mail without mailserver using SMTP

This method is for testing only. Most Mailservers will reject mail transferred with this method.


Demos

Debugging

Instead of sending the mail, you can retrieve the PHPMailer instance by calling prepare().

$phpmail = $phoreMailer->prepare($template,[]);
print_r ($phpmail);
$phpmail->Send();

Intercepting outgoing mail

$mailer->setSendMailFunction(function (PHPMailer $mail, PhoreMailer $phoreMailer) {
     $res["to"] = $mail->getAllRecipientAddresses();
     $res["subject"] = $mail->Subject;
     $res["html"] = $mail->Body;
     $res["text"] = $mail->AltBody;
});