uralmas/external-mailer

PHP email creation and transport class for sending emails via an external address by PHPMailer

0.2.0 2018-03-25 09:00 UTC

This package is not auto-updated.

Last update: 2024-04-23 02:21:10 UTC


README

Это может полезно в следующих случаях:

  • На хостинге по причине безопасности отключена отправка писем через стандартные возможности
  • Сайт, с которого необходимо отправлять письма, заражён вирусами, которые занимаются рассылкой спама, и хостер отключил возможность отправки писем
  • У разных сайтов есть единый шлюз рассылки писем

Installation & loading

PHPMailer is available on Packagist, and installation via Composer is the recommended way to install ExternalMailer. Just add this line to your composer.json file:

"uralmas/external-mailer": "~0.2.0"

or run

composer require uralmas/external-mailer

Использование

Библиотека состоит из 2-х частей - клиента и сервера. Клиент размещается на сайт, с которого необходимо отправить письма. Сервер - на том сайте / IP, который служит шлюзом отправки.

Client

У конструктора клиента 2 аргумента:

  • Первый - это адрес, по которому находится скрипт, инициализирующий серверную часть
  • Второй - адрес пути на сайте, на котором размещён клиент, с которого начинается адрес до прикладываемых локальных файлов (необязательный) Т.е. надо в функции addAttachment() в пути к файлу указывать адрес файла, доступный из интернета (если указан root адреса файлов, то его можно опустить)

Debugoutput указывать не надо - он будет заменён на внутренний. Для вывода сообщений дебага использовать Client->getMessages().

<?php

require_once('./vendor/autoload.php');

try {
	//First argument - the address on which the script is located sending mail
	//Sencond - root of filepath
    $sender = new UralMas\ExternalMailer\Client('http://server.ru/', 'http://client.ru/');

    $mail = $sender->createMailer();

    //Server settings										// Enable verbose debug output
    $mail->isSMTP();                                    	// Set mailer to use SMTP
    $mail->Host = 'smtp.mail.ru';  							// Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                             	// Enable SMTP authentication
    $mail->Username = 'user@mail.ru';                   	// SMTP username
    $mail->Password = 'password';                       	// SMTP password
    $mail->SMTPSecure = 'ssl';                          	// Enable TLS encryption, `ssl` also accepted
    $mail->Port = 465;                                  	// TCP port to connect to

    /* Other parameters and functions to configuration instanse of PHPMailer */
	
	//Send mails to Server part
    $send = $sender->send();

	//Debug messages
    foreach ($sender->getMessages() as $message) {
        echo $message;
    }
	
	$result = $sender->getResult();
} catch (\Exception $e) {
    echo $e->getMessage();
}

Server

<?php

require_once('./vendor/autoload.php');

try {
    if (! isset($_POST['mailer'])) {
        throw new Exception('Not data are send');
    }

    $mailerData = (string) $_POST['mailer'];

    $mailer = new \UralMas\ExternalMailer\Server($mailerData);

    echo $mailer->getResultSendMail();
} catch (Exception $e) {
    echo $e->getMessage();
}

License

This software is distributed under the LGPL 2.1 license. Please read LICENSE for information on the software availability and distribution.