snipworks / php-smtp
Simple PHP SMTP Mail Send Script
Installs: 2 649
Dependents: 3
Suggesters: 0
Security: 0
Stars: 83
Watchers: 6
Forks: 45
Open Issues: 5
Requires
- php: >=5.3
- ext-fileinfo: *
- ext-openssl: *
README
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('sender@example.com', 'password'); $mail->addTo('recipient@example.com', 'Example Receiver'); $mail->setFrom('example@example.com', '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('sender@example.com', 'password'); $mail->addTo('recipient@example.com', 'Example Receiver'); $mail->setFrom('example@example.com', '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', 'sender@example.com'); 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.