PHP SMTP
An easy to use SMTP (Simple Mail Transfer Protocol) library which helps you to send emails.
Installation
composer require snipworks/php-smtp
Examples
Unsecured
<?php
use Snipworks\Smtp\Email;
$mail = new Email('smtp.example.com', 25);
$mail->setLogin('[email protected]', 'password');
$mail->addTo('[email protected]', 'Example Receiver');
$mail->setFrom('[email protected]', 'Example Sender');
$mail->setSubject('Example subject');
$mail->setHtmlMessage('<b>Example message</b>...');
if($mail->send()){
echo 'Success!';
} else {
echo 'An error occurred.';
}
Secured (TLS)
<?php
use Snipworks\Smtp\Email;
$mail = new Email('smtp.example.com', 587);
$mail->setProtocol(Email::TLS);
$mail->setLogin('[email protected]', 'password');
$mail->addTo('[email protected]', 'Example Receiver');
$mail->setFrom('[email protected]', 'Example Sender');
$mail->setSubject('Example subject');
$mail->setHtmlMessage('<b>Example message</b>...');
if($mail->send()){
echo 'Success!';
} else {
echo 'An error occurred.';
}
It's discouraged to hard-code the SMTP login credentials like in the examples above. It's recommended to put them inside another file and load it or set it to environment variable
<?php
// config.php
define('SMTP_PRIMARY_EMAIL', '[email protected]');
define('SMTP_PRIMARY_PASSWORD', 'my very secret password');
<?php
require_once('config.php');
// ...
$mail->setLogin(SMTP_PRIMARY_EMAIL, SMTP_PRIMARY_PASSWORD);
// ...
It's also recommended to put the config outside the public web root if possible. This for example prevents people from including your PHP file remotely by a misconfiguration.