Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/taq/delayedmail
A simple tool to send emails with PHP without blocking
https://github.com/taq/delayedmail
background email php
Last synced: 1 day ago
JSON representation
A simple tool to send emails with PHP without blocking
- Host: GitHub
- URL: https://github.com/taq/delayedmail
- Owner: taq
- Created: 2013-09-10T20:17:44.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-08-10T21:03:20.000Z (over 7 years ago)
- Last Synced: 2024-05-22T00:04:08.436Z (6 months ago)
- Topics: background, email, php
- Language: PHP
- Size: 47.9 KB
- Stars: 2
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
# 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
from("taq ")->
to("Eustaquio Rangel ")->
cc("Eustaquio Rangel ")->
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
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 .
```