PHP Classes

PHP Delayed Email class: Queue email messages in files to send them later

Recommend this page to a friend!
  Info   View files View files (18)   DownloadInstall with Composer Download .zip   Reputation   Support forum (4)   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2024-01-09 (4 days ago) RSS 2.0 feedNot enough user ratingsTotal: 535 This week: 1All time: 5,612 This week: 348Up
Version License PHP version Categories
delayed-email 1.0.15GNU General Publi...5.3.0Email, PHP 5
Description 

Author

This package can Queue email messages in files to send them later.

The main class can compose messages and generates a MIME message body file that is stored in spool directory.

The messages are composed defining the sender, recipients, subject, message body text or HTML and attached files.

A sender class can monitor the spool directory regularly for queued message files. It sends the email messages via a given SMTP server.

Picture of Eustaquio Rangel de Oliveira Jr.
  Performance   Level  
Name: Eustaquio Rangel de ... <contact>
Classes: 6 packages by
Country: Brazil Brazil
Innovation award
Innovation award
Nominee: 3x

Winner: 1x

Details

# Delayed Mail for PHP This is a simple app for sending emails through PHP without blocking sending and waiting answer from the SMTP server. It provides some classes as: - `Message` to compose the message - `Server` to connect to the SMTP server - `Sender` to run and send the queued messages - `Runner` to fire a Sender object ## How it works First we need the server configurations. There is a sample file on the `test` dir, called `delayedmail.ini`: ``` host = smtp.gmail.com port = 587 user = taq password = secret path = /tmp/delayedmailtest ``` The only different parameter there is the `path` parameter. This is where the mail files will be stored. **VERY IMPORTANT** If you use two-phase authentication on a Gmail account, **sending emails with this library will not work**. You need a less secure account to make it works. ## Storing messages to send later The data store used are just regular plain text files. They are stored on the `path` configured above. On that dir there will be another two subdirs: - `delivery` where the queued messages are. - `sent`, where the messages are moved *after* `Sender` send them. - `error`, where the messages are moved if there are some errors on them. ## How to use it ### Queuing messages Just include the `delayedmail.php` on your app, create a new `Server` object, configure it, compose and queue a new message: ```php <?php include_once "delayedmail.php"; $server = new DelayedMail\Server("myconfigs.ini"); $msg = new DelayedMail\Message(); $msg->from("taq <eustaquiorangel@gmail.com>")-> to("Eustaquio Rangel <taq@bluefish.com.br>")-> cc("Eustaquio Rangel <taq@anotherhost.com>")-> subject("DelayedMail test!")-> text("This is just\na test!")-> attach("taq.jpg"); $server->push($msg); ?> ``` If you check the `delivery` dir now, there will be a file there with the message contents. You can use arrays on `attach` and `cc`. ### Running the runner Just edit the `runner.php` file with the desired interval and configuration file (usually the same config file as the server) and run it from the command line: ```php <?php $dir = dirname(__FILE__); echo "- loading classes from $dir\n"; include_once "$dir/delayedmail.php"; $sender = new DelayedMail\Sender(5,"delayedmail.ini"); $sender->run(); ?> ``` ```php $ php runner.php - initializing ... - checking for files in /tmp/delayedmailtest/delivery ... - no files found. ``` ## Testing ### Sending emails Go to the `test` directory, configure the `delayedmail.ini` and `test.php` files to the configs you want, and run: ``` $ php test.php ``` And then check your email app on the addresses you configured. ### Code Run `composer update`, go to the `test` directory and run: ``` $ phpunit . ```

  Files folder image Files  
File Role Description
Files folder imagesrc (4 files)
Files folder imagetest (9 files)
Accessible without login Plain text file .codeclimate.yml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file delayedmail.php Aux. Auxiliary script
Accessible without login Plain text file README.markdown Data Auxiliary data
Accessible without login Plain text file runner.php Example Class source

  Files folder image Files  /  src  
File Role Description
  Plain text file Cleaner.php Class Class source
  Plain text file Message.php Class Class source
  Plain text file Sender.php Class Class source
  Plain text file Server.php Class Class source

  Files folder image Files  /  test  
File Role Description
  Accessible without login Plain text file attachment.txt Data Documentation
  Accessible without login Plain text file cleanerTest.php Test Unit test script
  Accessible without login Plain text file delayedmail.ini Data Auxiliary data
  Accessible without login Plain text file messageTest.php Test Unit test script
  Accessible without login Image file qat.jpg Icon Icon image
  Accessible without login Plain text file senderTest.php Test Unit test script
  Accessible without login Plain text file serverTest.php Test Unit test script
  Accessible without login Image file taq.jpg Icon Icon image
  Accessible without login Plain text file test.php Example Example script

 Version Control Unique User Downloads Download Rankings  
 100%
Total:535
This week:1
All time:5,612
This week:348Up
User Comments (2)
very good
10 years ago (Rahul Shambharkar)
80%StarStarStarStarStar
good
10 years ago (shyam6511)
80%StarStarStarStarStar