PHPackages                             toropyga/fmail - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. toropyga/fmail

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

toropyga/fmail
==============

Library for working with post servers from Toropyga

v6.0.5(2y ago)0288MITPHPPHP &gt;=5.1.0

Since Aug 10Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Toropyga/FMail)[ Packagist](https://packagist.org/packages/toropyga/fmail)[ RSS](/packages/toropyga-fmail/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (1)Versions (7)Used By (0)

Fmail
=====

[](#fmail)

PHP Mail sender script

[![License](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)[![Version](https://camo.githubusercontent.com/45183e460869fa103a4ed8aa004d0972165fdeb5b6ba7f7f856e6e73433e6d91/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76362e302e342d626c75652e737667)](https://camo.githubusercontent.com/45183e460869fa103a4ed8aa004d0972165fdeb5b6ba7f7f856e6e73433e6d91/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76362e302e342d626c75652e737667)[![PHP](https://camo.githubusercontent.com/f85e9a1e19d96dd19978f3b621237a876e188c358f8ed0908fea7d51eda1a225/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d76352e355f2d2d5f76382d626c756576696f6c65742e737667)](https://camo.githubusercontent.com/f85e9a1e19d96dd19978f3b621237a876e188c358f8ed0908fea7d51eda1a225/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d76352e355f2d2d5f76382d626c756576696f6c65742e737667)

Описание и примеры использования PHP класса отправки и получения почты FMail

Содержание
==========

[](#содержание)

- [Общие понятия](#%D0%BE%D0%B1%D1%89%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F)
- [Возможности класса FMail](#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0-FMail)
- [Описание работы](#%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B)
- [Пример использования](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

Общие понятия
=============

[](#общие-понятия)

Класс FMail предназначен для отправки и получения электронных почтовых сообщений средствами PHP. Данный класс не является полноценной почтовой программой для работы с электронной почтой! Для работы необходимо наличие PHP версии 4 и выше.

Возможности класса FMail
========================

[](#возможности-класса-fmail)

Позволяет отправлять письма используя стандартную функцию PHP mail(), а также не используя данную функции напрямую подключаться к указанному почтовому серверу через сокет.

Позволяет получать письма используя библиотеку PHP IMAP

Поддерживает авторизацию на почтовых серверах методом PLAIN и LOGIN.

Поддерживаются текстовые кодировки (charset) ISO-8859-1, UTF-8, WINDOWS-1251 и KOI8-R.

Поддерживаются отправка сообщений в текстовом и HTML формате.

Отправка письма нескольким получателям.

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

Поддержка отправки писем скрытым получателям, имя и адрес получателя не отображается в поле "Кому" (To).

Позволяет прикрепить к письму файлы любого формата.

Создание сообщения из любого HTML файла с подгрузкой картинок, стилевых таблиц и скриптов.

Поддерживается кодирование текста из кодировки Windows-1251 в кодировку UTF-8 и обратно, не требуя наличия модуля iconv.

Проверка электронного адреса на правильность написания.

Протоколирование всех действий.

Описание работы
===============

[](#описание-работы)

**Основные функции отправки сообщений**

Подключение файла класса

```
require_once("FMail.php");
```

или с использованием composer

```
require_once("vendor/autoload.php");
```

Инициализация класса

```
$ml = new FYN\FMail();
```

Внимание!!! В классе есть значения используемые по умолчанию. Изменение всех параметров по умолчанию можно произвести в блоке переменных "Переменные настройки скрипта (класса)". Или через специальные функции класса которые будут описаны ниже.

По умолчанию скрипт использует функцию PHP mail(). Для подключения через сокет указываем:

```
$ml->setMailUse(false);
```

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

```
$ml->setServer('your_mailserver.com'); //можно указать IP адрес или доменное имя сервера
```

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

```
$ml->setPort(2525); //Указывает номер порта
```

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

```
$ml->setTimeout(30); //Указываем время в секундах
```

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

```
$ml->setAuth('PLAIN'); //Указываем метод авторизации LOGIN или PLAIN
```

Для авторизации необходимо указать логин и пароль пользователя. Пользуемся функциями:

```
$ml->setLogin('login'); //Указываем логин пользователя
$ml->setPassword('password'); //Указываем пароль пользователя
```

По умолчанию стоит ограничение на количество одновременных получателей письма - 1 (один). Для изменения пользуемся функцией:

```
$ml->setMaxRecipient(2); //Количество одновременных получателей письма
```

По умолчанию используется кодировка текста UTF-8. Для изменения пользуемся функцией:

```
$ml->setCharset('WIN'); //Указываем код кодировки
                        //(WIN=>windows-1251, UTF=>utf-8, ISO=>iso-8859-1, KOI=>koi8-r)
```

Указание получателей письма. (Подробнее - смотри описание функции)

```
$ml->setTo('test1@mail.com');
$ml->setTo('test2@mail.com', 'Иван Иванов');
$ml->setTo('test3@mail.com', $ml->getWin2Utf('Вася Пупкин'));
$ml->setTo(array(array('mail'=>'test4@mail.com', 'username'=>'Иван Иванов')));
```

Очистить список получателей, так как функция setTo накопительная

```
$ml->clearTo();
```

Указание, если надо, скрытых получателей письма. (Подробнее - смотри описание функции)

```
$ml->setBcc('bcc1@mail.com');
$ml->setBcc('bcc2@mail.com', 'Иван Иванов');
$ml->setBcc('bcc3@mail.com', $ml->getUtf2Win('Вася Пупкин'));
$ml->setBcc(array(array('mail'=>'bcc4@mail.com', 'username'=>'Иван Иванов')));
```

Очистить скрытых список получателей, так как функция setBcc накопительная

```
$ml->clearBcc();
```

Указание отправителя письма. (Подробнее - смотри описание функции)

```
$ml->setFrom('this@server.com');
```

или

```
$ml->setFrom('this@server.com', 'Имя Отправителя');
```

Указание темы сообщения

```
$ml->setSubject('Тема сообщения');
```

Задание текста письма.

Для задания текста письма можно использовать 4 различных функции. При создании письма необходимо выбрать одну, так как каждая функция не добавляет к ранее заданному тексту письма новый текст, а заменяет старый новым!!!

1. Создание простого текстового сообщения (text/plain)

```
$ml->setMessage("Здесь текст письма!");
```

2. Создание текстового сообщения в формате HTML

```
$ml->setHTMLMessage("Здесь текст письма");
```

или

```
$ml->setHTMLMessage("Здесьтекстписьма!!!");
```

3. Создание простого текстового сообщения (text/plain) из HTML файла

```
$ml->setMessageFromHTML("file.html"); //Указываем путь к файлу HTML
```

4. Создание сообщения из HTML файла (возвращает true или false)

```
$ml->setHTMLfile("file.html"); //Указываем путь к файлу HTML
```

Добавление файлов к письму (возвращает true или false)

```
$ml->setFile("file1.txt"); //Указываем путь к файлу
$ml->setFile("file2.gif");
$ml->setFile("file3.zip");
```

Очистить список файлов, так как функция setFile накопительная

```
$ml->clearFiles();
```

Отправка письма (возвращает true или false)

```
$ml->send();
```

**Основные функции получения сообщений**

Подключение файла класса

```
require_once("FMail.php");
```

Инициализация класса

```
$ml = new /FYN/FMail();
```

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

```
$ml->setServer('your_mailserver.com'); //можно указать IP адрес или доменное имя сервера
```

При подключении IMAP по умолчанию используется 143 порт, для изменения пользуемся функцией:

```
$ml->setImapPort(993); //Указывает номер порта
```

По умолчанию используется подключение по протоколу IMAP, можно использовать, но не рекомендуется, протокол POP3. Для изменения пользуемся функцией:

```
$ml->setImapType('pop3');
```

Настройка флагов подключения для функции imap\_open

```
$ml->setImapFlags('/ssl/debug/user=Administrator', true);
```

Для авторизации необходимо указать логин и пароль пользователя. Пользуемся функциями:

```
$ml->setLogin('login'); //Указываем логин пользователя
$ml->setPassword('password'); //Указываем пароль пользователя
```

Считываем список папок.

```
$folders = $ml->getImapFolders();
```

Задание папки для чтения её содержимого

```
$ml->setImapFolder('INBOX/Работа');
```

Возвращаем список писем в папке Все параметры необязательные. Указаваем имя папки, номер сообщения с которого начинаем чтение папки и количество сообщений для возврата (см. описание функции)

```
$ml->read_folder('INBOX', 124, 10);
```

Возврат списка писем в почтовом ящике по заданным параметрам

```
$mails = $ml->receive('UNSEEN'); // список параметров см. в описании функции
```

Чтение письма по номеру письма

```
$ml->read_mail(124);
```

Чтение письма по UID

```
$ml->read_mail_UID(24);
```

**Дополнительные функции**

Проверка правильности написания адреса электронной почты (возвращает true или false)

```
$ml->getCheck('test@mail.com');
```

Конвертация текста из кодировки Windows-1251 в кодировку UTF-8

```
$text = $ml->getWin2Utf($text); //передаём текст который надо конвертировать
```

Конвертация текста из кодировки UTF-8 в кодировку Windows-1251

```
$text = $ml->getUtf2Win($text); //передаём текст который надо конвертировать
```

Включение отладочных функций скрипта (при ошибке выводит сообщение на экран)

```
$ml->setDebug(true);
```

Просмотр логов класса. Передаём параметры необходимых логов. 0 - все логи, 1 - отработавшие функции, 2 - переданные и полученные данные, 3 - ошибки

```
$logs = $ml->getLogs(3); //При включенных отладочных функциях выводит логи на экран
```

Декодирование строк вида =?utf-8?B?0KHQv9GA0LDQstC+0YfQvdC40Log0JHQmNCa?=

```
$text = $ml->getSubjectDecode($text);
```

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

[](#пример-использования)

```
require_once("FMail.php");
$ml = new FYN\FMail();
$ml->setMailUse(false);
$ml->setServer('your_mail_server.com');
$ml->setAuth('LOGIN');
$ml->setLogin('login');
$ml->setPassword('password');
$ml->setMaxRecipient(2);
$ml->setCharset('UTF');
$ml->setTo('test1@mail.com');
$ml->setTo('test2@mail.com', 'Иван Иванов');
$ml->setBcc('bcc1@mail.com');
$ml->setFrom('this@server.com', $ml->getWin2Utf('Имя Отправителя'));
$ml->setSubject('Тема сообщения');
$ml->setHTMLMessage("Здесь текст письма");
$ml->setFile("file1.txt");
$ml->setFile("file2.gif");
$ml->setFile("file3.zip");
if (!$ml->send()) {
    $ml->setDebug(true);
    $ml->getLogs();
}
else echo "Mail sending - OK";
```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~129 days

Recently: every ~162 days

Total

6

Last Release

1094d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/57900903?v=4)[Toropyga](/maintainers/Toropyga)[@Toropyga](https://github.com/Toropyga)

---

Top Contributors

[![Toropyga](https://avatars.githubusercontent.com/u/57900903?v=4)](https://github.com/Toropyga "Toropyga (6 commits)")

### Embed Badge

![Health badge](/badges/toropyga-fmail/health.svg)

```
[![Health](https://phpackages.com/badges/toropyga-fmail/health.svg)](https://phpackages.com/packages/toropyga-fmail)
```

###  Alternatives

[pulkitjalan/ip-geolocation

IP Geolocation Wrapper with Laravel Support

89164.9k1](/packages/pulkitjalan-ip-geolocation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
