Skip to content

anton-pribora/ApMailer

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ApMailer

Библиотека для отправки писем через SMTP. Основная идея данного приложения - простое подключение и быстрое использование функции отправки писем как из консоли, так и из PHP-кода.

Для работы требуется PHP 5.6+ с включенным модулем mbstring.

Пример письма:

Mail example

Если во время отправки письма возникнут какие-то ошибки, их можно отловить с помощью хуков без использваония try ... catch. И получить вот такие сообщения:

Messages

Для более подробной информации обратитесь к примеру с веб-формой.

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

Подключите библиотеку в своём проекте, проинициализируйти её, и можно отправлять письма:

<?php
include 'phar:///path/to/mailer.phar/lib.php';

Mailer()->init(include '/path/to/mailer.config.php');

$message = Mailer()->newTextMessage();
$message->setContent('Hello world!')
    ->setSubject('Mail test')
    ->addRecipient('myemail@example.org');
    
if (Mailer()->sendMessage($message)) {
    echo 'Сообщение успешно отправлено.';
} else {
    echo 'Во время отправки возникли какие-то ошибки, проверьте логи для большей информации.';
}

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

$ ./mailer.phar --help
Отправка писем через консоль, используя SMTP.

Использование: mailer.phar [ПАРАМЕТРЫ]
ПАРАМЕТРЫ
    -t, --text            Текст сообщения
    -s, --subject         Тема сообщения
    -r, --recipient       Получатель письма
    -f, --from            Отправитель письма
    -c, --config          Путь к конфигу с настройками почтовика
    -a, --attach          Вложить файл в письмо как Attachment
    -i, --related         Включить файл в письмо как Related (индентификатором при этом будет название файла)
    --html                Отправить письмо как HTML
    -d, --display-eml     Вывести содержимое письма в формате EML
    --config-example      Показать пример конфига
    -h, --help            Показать справочную информацию
    -v, --version         Показать версию приложения
    
Порядок обработки конфигов:
    1. Файл mailer.config.php, который находится в директории с mailer.phar
    2. Файл mailer.config.php, который находится в текущей рабочей директории
    3. Файлы, которые указаны через -c и --config

Примеры использования

Отправить пустое письмо без темы:

$ ./mailer.phar -r yourmail@example.com

Отправить письмо с темой и данными из stdin:

$ uname -a | ./mailer.phar -r yourmail@example.com -s 'My system' -t- 

Отправить письмо как HTML-шаблон:

$ uname -a | ./mailer.phar -r yourmail@example.com -s 'My system' --html \
  -t '<html><body><pre><code>' \
  -t - \
  -t '</code></pre>' \
  -t "<hr> `date`" \
  -t '</body></html>'

Отправить письмо с вложениями:

$ uname -a | ./mailer.phar -r yourmail@example.com -s 'My system' -t- -a file1.dat -a file2.dat

Отправить письмо в шаблоне с картинками:

$ uname -a | ./mailer.phar -r yourmail@example.com -s 'My system' --html \
  -t '<html><body><pre><code>' \
  -t - \
  -t '</code></pre>' \
  -t '<img src="cid:myimg.png">' -i ./myimg.png \
  -t '</body></html>'

Не отправлять письмо, а вывести его в stdout:

$ uname -a | ./mailer.phar -r yourmail@example.com -s 'My system' --html \
  -t '<html><body><pre><code>' \
  -t - \
  -t '</code></pre>' \
  -t '<img src="cid:myimg.png">' -i ./myimg.png \
  -t '</body></html>' \
  -d

Пример конфига:

$ ./mailer.phar --config-example
Пример конфигурационного файла для почтовика.

<?php

return [
    'defaultFrom' => 'mymail@example.org',
    'onError'     => function($error, $message, $transport) { echo $error; },
    'afterSend'   => function($text, $message, $layer) { echo $text; },
    'transports'  => [
        // Сохранение всех писем в папке
        ['file', 'dir'  => __DIR__ .'/mails'],
        
        // Отправка писем через Yandex, используя SSL и авторизацию
        ['smtp', 'host' => 'smtp.yandex.ru', 'ssl' => true, 'port' => '465', 'login' => '****@yandex.ru', 'password' => '******'],
    ],
];

About

Библиотека для отправки писем через SMTP

Resources

License

Stars

Watchers

Forks

Packages

No packages published