-
Notifications
You must be signed in to change notification settings - Fork 1
/
example.php
50 lines (30 loc) · 1.93 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
//------------[Подключаем файл класса или с автолодера]--------------//
require 'IMAPParse.php';
use dastanaron\extension\IMAPParse;
//------------[Подключаемся к ящику]--------------//
//Дескриптор - пример для яндекса (третий аргумент)
$imap = new IMAPParse('ВАШ ЯЩИК', 'ВАШ ПАРОЛЬ', '{imap.yandex.ru:993/imap/ssl/novalidate-cert}INBOX');
//------------[Парсим по критерию]--------------//
//Массив собранных сообщений с ящика по критерию
$mails = $imap->parseMails('FROM "ЯЩИК_ОТ_КОГО"');
//------------[Сохраняем файлы]--------------//
//Выбираем папку для сохранения
$dir = __DIR__.'/attaches/';
//Создаем ее если не существует
if(!file_exists($dir)) {
mkdir($dir, 0777, true);
}
//Перебираем массив полученных писем для получения данных и сохранения
foreach($mails as $msgNumber => $mail)
{
//Проверяем есть ли вложения
if($mail['attache'] !== false) {
//Если есть раскладываем их и записываем, можно использовать file_put_contents, но тогда придется самим забирать вложения, по секции и номеру
foreach($mail['attache'] as $attache) {
IMAPParse::saveAttacheFile($imap->stream, $dir.$attache['filename'], $msgNumber, $attache['section']);
}
}
}
//Другой способ сохранить файлы, это вызвать parseMail со вторым аргументом true, но тогда он будет сохранен, в текущей папке выполнения скрипта
$mails = $imap->parseMails('FROM "ОТ_КОГО_ПИСЬМА"', true);