NetPeak Biz Tech    


Как настроить отправку писем с помощью языка R

Как настроить отправку писем с помощью языка R

< >

Как настроить запуск R-скрипта по расписанию? Хотите оперативно и своевременно узнавать о сбоях в работе скриптов R? Достаточно настроить оповещения на email. В этой статье я опишу, как настроить рассылку с помощью языка R и как избежать подводных камней.

Что можно отправлять в письмах:

  • отчеты по результату работы скрипта на свою почту или по списку конкретных email-адресов;
  • сообщения об ошибках, которые возникли в работе скриптов;
  • файлы с локального диска, например, фотографию или CSV-документ.

Чтобы настроить отправку писем, потребуется:

Как выбрать пакет R для отправки email?

Для отправки писем существует несколько пакетов. При выборе подходящего учитывайте:

  • нужна ли аутентификация в почтовом сервисе;
  • пользователям каких почтовых ящиков будете отправлять сообщения.

Рассмотрим подробнее плюсы и минусы пакетов «sendmailR» и «mailR».

1. Пакет «sendmailR»

Этот пакет не поддерживает процедуру аутентификации, а значит, можно отправлять письма не из всех почтовых сервисов. Более того, сервисы, позволяющие рассылать письма без аутентификации, накладывают определенные ограничения. К примеру, SMTP сервер для Gmail (ASPMX.L.GOOGLE.COM) не требует аутентификации, но отправлять сообщения можно только пользователям Gmail или G Suite.

Преимущество «sendmailR» в том, что этот пакет достаточно прост в установке, не требуется дополнительное программное обеспечение.

2. Пакет «mailR»

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

Сложности могут возникнуть в связи с тем, что для работы пакета требуется установка Java.

Если нужно провести рассылку исключительно по пользователям Gmail или G Suite и при этом аутентификация необязательна — без особых раздумий пользуйтесь пакетом «sendmailR», в противном случае — выбирайте «mailR».

Как установить пакет «sendmailR»?

1. Для установки пакета откройте RStudio и в области «Source» вставьте код:

#Установка пакетаinstall.packages(\"sendmailR\")#Подключение пакетаlibrary(sendmailR)

Если вы впервые запустили RStudio, воспользуйтесь сочетанием клавиш «Ctrl+«Alt+Shift+0», чтобы появилась панель «Source».

2. Чтобы настроить отправку писем, подставьте ваши данные в код ниже:

from = \"\"to = c(\"\", \"\")subject <- “My first test letter”body <- (“It`s my first letter from R by sendmailR package!” , mime_part(iris))sendmail(from=from,to=to,subject=subject, msg=body,control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

 

2.1. Вместо «sender@gmail.com» впишите адрес своей Gmail-почты, вместо «recipient1@gmail.com» и «recipient2@gmail.com» — адреса получателей. Помните, что с SMTP сервера ASPMX.L.GOOGLE.COM можно рассылать письма только пользователям Gmail и G Suite,

2.2. В «subject» впишите тему письма,

2.3. Объект «body» содержит тело письма. В теле письма может быть не только текст («It`s my first letter from R by sendmailR package!»), но и вложения, например, встроенная R-таблица «iris».

2.4. Комaнда «sendmail» отправляет письмо. При проверке почты в первую очередь посмотрите папку «Спам»: из-за того, что вы отправили email без аутентификации и предварительно не настроили фильтр на почте, письмо сначала, скорее всего, попадет в спам.

Как установить пакет «mailR»?

1. Скачайте и установите версию Java, соответствующую разрядности на вашем компьютере.

Для 32-разрядной операционной системы скачайте Java по ссылке.

Если у вас 64-разрядная ОС, рекомендую скачать нужную версию из стороннего ресурса. На официальном сайте указано, что 64-битную Java можно скачать только через 64-разрядную версию браузера — я пробовал этот способ и не получил нужный результат.

2. Далее нужно установить пакеты «rJava» и «mailR»:

#Установка пакетаinstall.packages(\"rJava\")install.packages(\"mailR\")#Подключение пакетаlibrary(mailR)

При запуске кода может появиться следующая ошибка:

Error: .onLoad failed in loadNamespace() for \\\'rJava\\\', details: call: fun(libname, pkgname) error: JAVA_HOME cannot be determined from the Registry

Рассмотрим возможные причины:

2.1. Разрядность установленной Java не соответствует текущей версии Windows. Обычно подобная ошибка возникает, если у вас 64-разрядная ОС.

Как определить, какую версию Java вы используете? Проверьте системный диск Windows: для установки программного обеспечения по умолчанию используются две папки, расположенные в корне системного диска. Если папка «Java» появилась в «Program Files» — это 64-разрядная версия, а если в папке «Program Files (x86)» — 32-разрядная.

2.2. Вторая причина ошибки: в R не прописана или неверно прописана опция «JAVA_HOME». Чтобы устранить ошибку, запустите в R комaнды:

    • для 32-разрядной ОС:
Sys.setenv(JAVA_HOME=\\\'C:\Program Files (x86)\Java\jre1.8.0_102\\\')
    • для 64-разрядной ОС:
Sys.setenv(JAVA_HOME=\\\'C:\Program Files\Java\jre1.8.0_102\\\')

 

Перед запуском комaнды замените «jre1.8.0_102» на название файла Java, установленного на вашем компьютере. Файл можно найти в одноименной папке «Java», о которой я упоминал в предыдущем пункте. 

3. Далее нужно определить, требует ли ваш SMTP-сервер прохождения аутентификации, и в зависимости от этого выбрать подходящий код для отправки писем.

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

  • тема и тело письма;
  • отправитель и получатели;
  • параметры SMTP-сервера.
library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"Recipient 1 \", \"recipient2@gmail.com\"), cc = c(\"CC Recipient \"), bcc = c(\"BCC Recipient \"), subject = \"Subject of the email\", body = \"Body of the email\", smtp = list(host.name = \"aspmx.l.google.com\", port = 25), authenticate = FALSE, send = TRUE)

3.2. Чтобы отправить письмо через SMTP с прохождением аутентификации, используйте код: 

library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"Recipient 2 \"), replyTo = c(\"Reply to someone else \") subject = \"Subject of the email\", body = \"Body of the email\", smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

Аргумент «smtp» содержит все параметры SMTP сервера и в нем необходимо указать учетные данные. 

Как отправлять письма с текстом на русском языке? 

Если вы используете пакет «mailR» и хотите, чтобы ваши письма содержали в теме или теле кириллические символы, воспользуйтесь аргументом «encoding» и укажите кодировку «utf-8».

library(mailR)send.mail(from = \"Sender Name \", to = \"recipient@gmail.com\", subject = \"Тема тестового письма на русском языке.\", body = \"Русскоязычное тело письма!\", encoding = \"utf-8\", smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = T), authenticate = TRUE, send = TRUE)

 

Для отправки русскоязычного текста с помощью пакета «sendmailR» необходимо предварительно дважды перекодировать этот текст в UTF-8.

library(sendmailR)from = \"\"to = c(\"\",\"\")subject <- iconv(iconv(\\\'Тема письма\\\',to = \"UTF-8\"),to = \"UTF-8\")body <- iconv(iconv(\\\'Тело письма\\\',to = \"UTF-8\"), to = \"UTF-8\")sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Как отправлять письма в формате HTML?

Для отправки сообщений в HTML-формате с помощью пакета «mailR» достаточно воспользоваться аргументом «html»:

library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"recipient2@gmail.com\"), subject = \"Subject of the email\", body = \"<html>The apache logo - html>\", html = TRUE, smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

 

Для отправки письма в HTML-формате с помощью пакета «sendmailR» используйте такой код:

library(sendmailR)msg <- mime_part(\\\' <html xmlns=\"https://www.w3.org/1999/xhtml\"><head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/> <title>HTML demotitle> <style type=\"text/css\"> style>head><body><h1>HTML demoh1>body> html>\\\')msg[[\"headers\"]][[\"Content-Type\"]] <- \"text/html\"from = \"\"to = c(\"\",\"\")subject <- \"HTML test\"body <- list(msg)sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Как отправить в теле письма HTML-таблицу?

Самый простой способ — использовать пакет «htmlTable». Приведу примеры преобразования встроенной в R-таблицы «iris» в HTML-формат и добавление ее в тело письма.

Код для пакета «mailR»:

iris_html <- htmlTable(iris)library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"recipient2@gmail.com\"), subject = \"Subject of the email\", body = iris_html, html = TRUE, smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

Пример для «sendmailR»:

library(sendmailR)iris_html <- htmlTable(iris)msg <- mime_part(paste0(\\\' <html xmlns=\"https://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/> <title>HTML table demotitle> <style type=\"text/css\"> style> head> <body> <h1>My table irish1>\\\', iris_html ,\\\' body> html>\\\'))msg[[\"headers\"]][[\"Content-Type\"]] <- \"text/html\"from = \"\"to = c(\"\",\"\")subject <- \"HTML test\"body <- list(msg)sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Так же легко преобразовать любую таблицу из R в HTML-формат и отправлять ее в письме.

Выводы

Как мы внедрили BI-аналитику в отделе контекстной рекламы Язык R достаточно мощный, чтобы автоматизировать пpaктически любой процесс работы с данными. Чтобы получать отчеты о работе скриптов или уведомления об ошибках, выберите подходящий пакет R и настройте рассылку.

  1. Пакет «sendmailR» прост в установке, но не поддерживает процедуру аутентификации, и вы сможете отправлять письма только пользователям Gmail или G Suite.
  2. Пакет «mailR» поддерживает аутентификацию, но в процессе его установки вам также придется инсталлировать Java.
  3. С помощью языка R можно настроить не только отправку простых текстовых сообщений, но и письма:
    • с текстом на кириллице;
    • в формате HTML;
    • с HTML-таблицей в теле.



Комментарии:

Какой сервис автоматического продвижения выбрать

Какой сервис автоматического продвижения выбрать Обзор четырех самых популярных сервисов для автоматического продвижения сайтов...

15 07 2026 2:57:25

Кейс по продвижению интернет-магазина чехлов и виниловых наклеек для телефонов: ROMI 43%

Кейс по продвижению интернет-магазина чехлов и виниловых наклеек для телефонов: ROMI 43% Кейс: как золотой корпоративный линкбилдинг помог в SEO-продвижении интернет-магазина, в котором можно заказать и купить чехлы и виниловые наклейки для смартфонов...

14 07 2026 12:50:15

App Campaign for Engagement. Как работать с кампаниями на взаимодействие с приложением в Google Ads

Человек скачал ваше приложение, воспользовался им один раз и … забыл. Что с этим делать, читайте в Netpeak Journal....

13 07 2026 20:44:11

Рамзи Ризк про EyeEm и будущее мобильных приложений

Основатель сервиса мобилографии EyeEm Рамзи Ризк рассказал об особенностях своего сервиса и будущем мобильных приложений....

12 07 2026 0:54:20

Поисковое продвижение — словарь англоязычных терминов и аббревиатур

Поисковое продвижение — словарь англоязычных терминов и аббревиатур Словарь, которым пользуются SEO-специалисты агентства Netpeak...

11 07 2026 16:31:31

Netpeak Spider — помощник при составлении технического аудита сайта

Netpeak Spider — помощник при составлении технического аудита сайта Мы запустили еще один полезный инструмент: Netpeak Spider....

10 07 2026 0:31:36

Миграция с Google AdWords API на Google Ads API: подробный мануал

Миграция с Google AdWords API на Google Ads API: подробный мануал Как и зачем мигрировать со старой на новую версию API на языке R. С пакета RAdwords на rgoogleads. Руководство от Алексея Селезнева. Читать дальше!...

09 07 2026 0:39:24

Семь улучшений Netpeak: итоги года и цели на 2017

Netpeak подводит итоги 2016 года и делится планами на будущее....

08 07 2026 7:24:44

Зачем учить язык R интернет-маркетологу, и как сделать это максимально быстро

Когда и зачем я начал учить R, с какими сложностями столкнулся, как появилась и реализовывалась идея создания курса...

07 07 2026 6:38:23

Кейс: крауд-маркетинг для увеличения продаж интернет-магазина

Кейс: крауд-маркетинг для увеличения продаж интернет-магазина Как начать продавать и увеличить продажи, наращивая бесплатные ссылки...

06 07 2026 14:23:49

Кейс по контекстной рекламе сайта туристической компании: увеличение количества онлайн-бронирований на 100%

Кейс по контекстной рекламе сайта туристической компании: увеличение количества онлайн-бронирований на 100% Стратегия контекстной рекламы для лендинга турагенства: увеличение количества онлайн-бронирований на 100%...

05 07 2026 22:45:21

Теги alternate, hreflang, media, type — зачем и как их использовать

Теги alternate, hreflang, media, type — зачем и как их использовать О важных для разметки сайта тегах — alternate, hreflang, media, — и как их грамотно использовать при продвижении....

04 07 2026 8:58:58

Инфографика: как именно рулит контент

Инфографика: как именно рулит контент Консультант по маркетингу в зоне ru Екатерина Решетило написала пост о том, как правильно настроить стратегический контент-маркетинг для долгосрочных продаж...

03 07 2026 13:45:18

Посиделки в офисе. Детские игры, чтобы разнообразить рабочие будни

Посиделки в офисе. Детские игры, чтобы разнообразить рабочие будни По следам «Игры в кальмара». Небольшая подборка ностальгических комaндных игр, которые могут прижиться в вашем офисе....

02 07 2026 17:44:22

Шесть блестящих примеров видеоконтента в B2B (и почему они так хороши)

Шесть блестящих примеров видеоконтента в B2B (и почему они так хороши) Перевод статьи Никки Джиллиленд из Econsultancy об уроках для маркетологов про то, каким должно быть хорошее видео. Узнайте 4 правила эффективного видеоконтента прямо сейчас!...

01 07 2026 6:36:55

Что такое вес страниц и на что он влияет

Что такое вес страниц и на что он влияет Вес страниц — один из факторов ранжирования в поисковых системах Google и Яндекс....

30 06 2026 5:15:22

10 неочевидных функций приложения для скриншотов KISS

10 неочевидных функций приложения для скриншотов KISS Опции скриншутера, которые упростят вам жизнь....

29 06 2026 11:49:46

[SEO настоящего] под микроскопом

[SEO настоящего] под микроскопом [SEO 2.0] — это продукт для бизнеса от Netpeak, он включает в себя принципиально новый подход к продвижению сайтов....

28 06 2026 3:33:50

SEO-продвижение для СМИ — рост органического трафика на 569%, аудитории — в пять раз

SEO-продвижение для СМИ — рост органического трафика на 569%, аудитории — в пять раз Продвижение казахстанского онлайн-издания, новостника informburo.kz....

27 06 2026 17:20:16

Google Ads — как работает планировщик ключевых слов

Подобрать нужные слова поможет проверка Google Рекламы....

26 06 2026 4:45:44

Что такое Netpeak Group? Все, что нужно знать

Компании и продукты, социальные инициативы, главные проекты и миссия группы. Разложили все о Netpeak Group по полочкам в новом посте....

25 06 2026 10:13:30

Коммерческое ранжирование Яндекса (перевод)

Коммерческое ранжирование Яндекса (перевод) Интересный и важный документ, не пропустите. Для ранжирования используется сумма коммерческой и тематической релевантности. Уходя с головой в SEO, многие вебмастера забывают о пользовательских факторах. Узнайте больше об этом!...

24 06 2026 4:46:41

Что слушать за работой — подборка музыки

Что слушать за работой — подборка музыки Под какие треки работают интернет-маркетологи, копирайтеры и другие специалисты digital-рынка....

23 06 2026 0:12:10

Сколько стоил клик в Яндекс.Директ в Казахстане в третьем квартале 2020 года — исследование Netpeak

Сколько стоил клик в Яндекс.Директ в Казахстане в третьем квартале 2020 года — исследование Netpeak Зная стоимость клика в вашей тематике или регионе, и коэффициент конверсии на вашем сайте, вы можете оценить объем необходимых инвестиций в рекламу и прогнозировать стоимость конверсии. Узнать больше!...

22 06 2026 19:54:14

Как настроить расширенную электронную торговлю с помощью Google Tag Manager

Как настроить расширенную электронную торговлю с помощью Google Tag Manager Как GTM помогает настроить расширенную электронную торговлю (enhanced ecommerce)....

21 06 2026 15:20:15

No-code решения для создания мобильных приложений

No-code решения для создания мобильных приложений 88% времени в телефоне люди проводят в приложениях. Рассказываем, как их можно создавать без написания кода....

20 06 2026 10:35:38

Как работает Brand Lift — исследуем эффективность видеорекламы на YouTube

Как работает Brand Lift — исследуем эффективность видеорекламы на YouTube Недавно у меня закончилась видеокампания на ютуб, по которой удалось собрать исследование Brand Lift. Хочу поделиться инсайтами...

18 06 2026 3:10:14

Кейс по продвижению интернет-магазина детской одежды, обуви и товаров: ROMI 319%

Кейс по продвижению интернет-магазина детской одежды, обуви и товаров: ROMI 319% Виктория Игнатьева опубликовала новый кейс по продвижению интернет-магазина детской одежды, обуви и товаров: ROMI (возврат маркетинговых инвестиций) 319%....

17 06 2026 2:33:27

Как работают расширенные объявления Google Рекламы — кейсы

Как работают расширенные объявления Google Рекламы — кейсы Стоит ли торопиться с переходом на новый формат объявлений? Эксперимент PPC-специалистов агентства Netpeak....

16 06 2026 19:15:30

Отчеты Google ***ytics — подробное руководство с объяснениями

Отчеты Google ***ytics — подробное руководство с объяснениями То, чего нет в справке — подробный обзор отчетов Google ***ytics: в режиме реального времени, по аудитории, источникам трафика, поведению, конверсии. Узнать больше!...

15 06 2026 11:48:44

Как не терять звонки даже с двумя сотрудниками в call-центре

Как не терять звонки даже с двумя сотрудниками в call-центре Минимизация пропущенных звонков и ускорение обработки заявок с наглядными примерами из сервиса...

14 06 2026 0:32:42

Как сделать гифку из видео — два способа для новичков

Как сделать гифку из видео — два способа для новичков Гифка — это зациклиненное видеоизображение, рисунок-ролик, крохотный фильм, без которого трудно представить современный сайт. Как быстро создавать гифки и получать профит....

13 06 2026 8:57:32

Внедрение CRM. Принцип работы, с чего начать

Внедрение CRM. Принцип работы, с чего начать В этой статье мы поговорим про принципы работы СRM-системы. Это базовые моменты, прояснив которые СRM перестанет быть для вас чем-то сложным и непонятным....

12 06 2026 16:29:32

Путь магазина «Модна Каста» от Андрея Логвина

CEO магазина «Модна Каста» Андрей Логвин — сделал отличный доклад на 8P о пути к успеху своего бизнеса и будущем Ecommerce. Детальнее об ощущении deal и «первом дне» для интернета читайте в новом посте....

11 06 2026 9:24:28

Платиновые правила продающего видеоконтента на YouTube

Платиновые правила продающего видеоконтента на YouTube Каким правилам нужно следовать, чтобы создать эффективный рекламный ролик?...

09 06 2026 1:49:26

Вакцинация от Covid-19 в Украине: как организовать для сотрудников офиса

Вакцинация от Covid-19 в Украине: как организовать для сотрудников офиса Оставить заявку на горячей линии МОЗ — это только вершина айсберга. Необходимо провести опрос среди сотрудников компании. И не один. А ещё подготовить несколько помещений для вакцинации и отдыха. Узнать больше!...

08 06 2026 11:15:18

SEMRUSH. Шпионаж за конкурентами при раскрутке сайтов

SEMRUSH. Шпионаж за конкурентами при раскрутке сайтов Обзор ресурса по подбору ключевых запросов www.SEMRUSH.com на Netpeak.ua...

07 06 2026 23:48:52

Выход на новый рынок, рост видимости сайта в 5 раз и +20% небрендового трафика ежемecячно — кейс Decathlon

Выход на новый рынок, рост видимости сайта в 5 раз и +20% небрендового трафика ежемecячно — кейс Decathlon Начинали с SEO на этапе разработки нового сайта. Узнать больше!...

06 06 2026 3:58:54

Реклама мобильного приложения в Facebook: 10 советов по снижению стоимости трафика

Реклама мобильного приложения в Facebook: 10 советов по снижению стоимости трафика Как сэкономить на рекламе мобильных приложений в Facebook...

05 06 2026 21:13:24

Руководство для брендов по Playable Ads

Руководство для брендов по Playable Ads Рассказываем о перспективном формате рекламы, который привлекает внимание потребителя даже в эпоху повсеместной «баннерной слепоты»....

04 06 2026 20:12:59

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2019 года

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2019 года Алексей Селезнев, руководитель отдела аналитики Netpeak делится статистикой по самым дорогим и самым дешевым тематикам, регионам размещения рекламы, каналам и устройствам. Узнать больше!...

03 06 2026 14:28:47

Чаты для бизнеса от Яндекс: руководство по настройке

Чаты для бизнеса от Яндекс: руководство по настройке Идеи для интернет-маркетологов, как получить дополнительные каналы трафика и сделать заметным сниппет в поисковой выдаче....

02 06 2026 10:25:45

Атрибуция Facebook: для чего нужна и как настроить

Атрибуция Facebook: для чего нужна и как настроить Как отслеживать конверсии при многокaнaльном взаимодействии покупателя с вашим сайтом? Читайте далее...

01 06 2026 21:51:16

Как найти PBN конкурента

Как найти PBN конкурента Как найти сетку сайтов конкурентов — рассказываем о популярных методах и секретных фишках. Бонус — инструкция по выявлению PBN конкурентов. Читать дальше!...

31 05 2026 4:22:19

Индекс ридабилити и SEO

Индекс ридабилити и SEO Часто копирайтеры пишут для поисковых роботов, не заботясь о качестве контента и читабельности. Рассмотрим метрики для оценки ридабилити....

30 05 2026 17:35:50

Как работать с закладками в Power BI — подробное руководство

Как работать с закладками в Power BI — подробное руководство В этой статье я покажу пример визуальной работы с закладкой и пошагово разберу процесс их создания и применения для удобства визуализации данных...

29 05 2026 5:18:44

23 фишки контекстной рекламы — итоги круглого стола экспертов РИФ

Интересные маркетинговые методы, эффективные профессиональные хитрости и много другое прозвучало на круглом столе по фишкам контекстной рекламы...

28 05 2026 7:28:52

Отчет «Статистика аукционов» в Google Рекламе

Отчет «Статистика аукционов» в Google Рекламе Пpaктика в режиме «рейтинг онлайн». Новинка Google Рекламы — отчет «Статистика аукционов»....

27 05 2026 9:48:31

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::