lazervel/mailsender

Modern PHP mailer built on PHPMailer for easy integration.

Fund package maintenance!
indianmodassir

Installs: 11

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/lazervel/mailsender

v1.0.0 2025-10-24 06:12 UTC

This package is auto-updated.

Last update: 2025-10-24 06:13:51 UTC


README

Lightweight PHP library for effortless email sending.
Built on top of PHPMailer, it provides an easy and elegant way to send HTML emails with inline CSS, embedded images, and attachments.

๐Ÿš€ Features

  • Simple and clean wrapper for PHPMailer
  • Inline CSS support (<link rel="stylesheet"> auto inlines to <style>)
  • Embedded local images automatically converted to CID
  • File and base64 attachments support
  • Handles multiple recipients with one call
  • Easy integration with environment variables (.env or $_ENV)

๐Ÿ“ฅ Installation

Install via Composer:

composer require lazervel/mailsender

Or manually add to your composer.json:

{
  "require": {
    "lazervel/mailsender": "^1.0"
  }
}

๐Ÿงฉ Basic Usage

<?php

require 'vendor/autoload.php';

use Lazervel\MailSender\MailSender;

$mail = new MailSender(
  name: 'My App',
  email: 'youremail@gmail.com',
  password: 'yourpassword'
);

// Single recipient
$mail->addMail('John Doe', 'john@example.com');
$mail->mail->Subject = 'Welcome!';
$mail->mail->Body    = '<h1>Hello John!</h1><p>Welcome to our app.</p>';

// Send
if ($mail->send()) {
  echo "Mail sent successfully!";
} else {
  echo "Failed to send mail!";
}

๐Ÿ“ง Multiple Recipients Example

$recipients = [
  [
    'name'  => 'User One',
    'email' => 'user1@example.com',
    'subject' => 'Hello!',
    'body' => '<p>This is a test email.</p>'
  ],
  [
    'name'  => 'User Two',
    'email' => 'user2@example.com',
    'subject' => 'Another Mail',
    'body' => '<p>This is another email.</p>'
  ]
];

$mail->sendTo($recipients)->send();

๐Ÿ–‡๏ธ Attachments

From File Path:

$mail->addAttachment('/path/to/file.pdf');

From Uploaded File ($_FILES):

$mail->addTmpFileAttachment($_FILES['file']);

From Base64 or URL:

$mail->addStringAttachment($dataUrl, 'document.pdf');

๐ŸŽจ Inline CSS & Images

If your HTML contains linked CSS or image paths:

<link rel="stylesheet" href="style.css">
<img src="logo.png">

They will automatically be converted into inline <style> blocks and embedded CID images in the final email.

โš™๏ธ Environment Variables (Optional)

You can define these in your .env file or system environment:

MAILER_NAME="My App"
MAILER_EMAIL="youremail@gmail.com"
MAILER_PASSWORD="yourpassword"
APP_NAME="My App"

๐Ÿงฑ Directory Structure

MailSender/
โ”œโ”€โ”€ composer.json
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ MailSender.php
โ”‚   โ””โ”€โ”€ Exception/
โ”‚       โ””โ”€โ”€ ConfigurationException.php
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ MailSenderTest.php

๐Ÿงช Testing

vendor/bin/phpunit

๐Ÿ“œ License

This project is open-sourced under the MIT License.
Feel free to use, modify, and distribute with attribution.

โค๏ธ Author

Afsara
Developer & Founder โ€” Lazervel
GitHub โ€ข Email