pyrsmk / mail
A simple mail sender
Requires
- php: >=5.3.0
- pyrsmk/chernozem: ^3.0
README
Mail is a small library that aims to provide a light and simple mail implementation.
Installing
Pick up the source or install it with Composer :
composer require pyrsmk/mail
Sending a basic e-mail
Mail is built on top of Chernozem to have an ease to use configuration.
$mail = new Mail; $mail['from'] = 'lionel@example.org'; $mail['to'] = 'peter@another-site.org'; $mail['subject'] = 'Hey, I saw you last night!'; $mail['body'] = 'I saw you. Or not.'; $mail->send();
And that's all if you want to send a basic e-mail! Pretty simple, isn't it?
But we have a problem. Our address will be shown as from@example.org
and that is really ugly. Let's correct this :
$mail['from'] = array('Lionel McGonagall'=>'lionel@example.org');
It will be shown like this : Lionel McGonagall <from@example.org>
.
Sending to more than one recipient works the same way :
$mail['to'] = array( 'Peter' => 'peter@another-site.org', 'Anaïs' => 'anais@wonderful.net', 'Grandma' => 'iam@old.com' );
That syntax works for cc
and bcc
parameters too. Note that sender
and replyto
are accessible too but only with the simple email
syntax :
$mail['sender'] = 'peter@another-site.org'; $mail['replyto'] = 'anais@wonderful.net';
Sending a more complex e-mail
Let's say we want to send a billing e-mail to an user from our site with an eye-candy design in HTML, a text fallback and a PDF file attachment. That's how we can proceed :
$mail['html'] = '<h1>An awesome title for an awesome bill</h1>'; $mail['body'] = 'Your mail client does not support HTML rendering. So bad.'; $mail['attachments'] = array(__DIR__.'/my_generated_bill.pdf');
That's all we need as configuration ;)
You can also define a filename for an attachment file :
$mail['attachments'] = array( $_FILES['image1']['name'] => $_FILES['image1']['tmp_name'], $_FILES['image2']['name'] => $_FILES['image2']['tmp_name'] );
E-mail validation
Additionally, you can validate an e-mail address :
if(Mail::validate('lionel@example.org')){ echo 'The e-mail address is valid'; } else{ echo 'The e-mail address is NOT valid'; }
License
MIT in your face.