Как настроить отправку писем с помощью языка R > NetPeak - Независимость и осознанность
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-таблицей в теле.



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

Выбираем сайты-доноры: на что нужно обращать внимание

Выбираем сайты-доноры: на что нужно обращать внимание Ссылка с сайта с высоким тИЦ уже не считается качественной. Хороший донор вычисляется по комплексу факторов. Большую часть работы придется делать вручную. Важно найти отличный сайт, с огромным количеством интересного контента, оцененного по достоинству читателями, и гармонично туда вписать свою статью со ссылкой...

20 09 2024 8:55:29

Кейс Taketones: как за год увеличить трафик в 10 раз

Кейс Taketones: как за год увеличить трафик в 10 раз Продвижение музыкальной библиотеки. Со старта сотрудничества, трафик и основной ключ сайта клиента вырос в 10 раз. Регион продвижения — США....

19 09 2024 1:21:24

Что делать, если приложение удалили из Google Play или App Store

Что делать, если приложение удалили из Google Play или App Store Есть ли шанс на апелляцию...

18 09 2024 13:13:29

5 главных трендов в социальных сетях в 2022 году

5 главных трендов в социальных сетях в 2022 году Хотите раскрутить свои соцсети в 2022 году? Тогда уже сейчас нужно задуматься, что будете публиковать. В статье расскажем, какой контент будет в тренде в будущем году....

17 09 2024 10:10:40

Как поисковые системы индексируют сайт

Как поисковые системы индексируют сайт Система индексирования страниц — как поисковик и его роботы разбирают перечень контента по полочкам...

16 09 2024 2:14:36

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

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

15 09 2024 4:27:31

14 неочевидных и пpaктически применимых фишек — круглый стол 8P 2020

Лучшие фишки от спикеров конференции 8P 2020. В конце каждой конференции спикеры 8P собираются за круглым столом, чтобы поделиться пpaктически применимыми советами, которые можно внедрить в свой проект и сразу почувствовать отдачу...

14 09 2024 15:13:38

Топ-25 телеграм-каналов о веб-дизайне, на которые стоит подписаться

Топ-25 телеграм-каналов о веб-дизайне, на которые стоит подписаться Тренды, рекомендации, уроки, инструкции, а также вакансии, идеи, кейсы и всё, что поможет оставаться в теме, находить интересные проекты и вдохновляться. Читать дальше....

13 09 2024 18:33:46

Товарные фиды для динамических кампаний в Яндекс.Директ: элементы и примеры

Товарные фиды для динамических кампаний в Яндекс.Директ: элементы и примеры Как подготовить фиды в Яндекс.Директ для разных тематик...

12 09 2024 20:41:46

Что такое релевантные страницы?

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

11 09 2024 8:13:31

Корпоративная культура Blizzard: как выглядит офис гeйм-гиганта и зачем сотрудникам дарят мечи и перстни

Как Blizzard реализует тимбилдинг, мотивирует сотрудников и превращает офис в музей...

10 09 2024 23:31:57

Экспоненциальный рост дохода, эффект синергии или сравнительный кейс по тематике «зимние шины»

Экспоненциальный рост дохода, эффект синергии или сравнительный кейс по тематике «зимние шины» Отличный кейс Ольги Костовой. Увеличивая бюджет на рекламу вдвое, вы начинаете заpaбатывать не вдвое больше, а в 2.5, 3 и так далее раз больше. На примере кейса показываем, как это происходит. Читать дальше....

09 09 2024 5:16:56

35 ошибок при А/В-тестировании

35 ошибок при А/В-тестировании Опыт контент студии WordFactory и 14 экспертов интернет-маркетинга....

08 09 2024 11:30:45

Стоит ли покупать домены с историей и где их найти

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

07 09 2024 15:38:40

Как анализировать личные расходы с помощью Airtable R и PowerBI

Как анализировать личные расходы с помощью Airtable R и PowerBI Создать BI-систему собственного кошелька. Для ввода и хранения данных выбор стоял между Google Forms и Google Sheets или Airtable.Читайте дальше, что выбрал автор, чтобы оптимизировать расход, планировать траты на месяц и контролировать результаты в PowerBI....

06 09 2024 19:36:59

NPS: что такое Net Promoter Score и как начать его считать

NPS: что такое Net Promoter Score и как начать его считать Цель этой статьи — предупредить от опасной ошибки в маркетинге: бездумного и неправильного внедрения NPS-опросника....

05 09 2024 3:28:39

Полный гайд по Reels в Instagram: что это, как создавать и что снимать

Полный гайд по Reels в Instagram: что это, как создавать и что снимать Как работать с новой функцией, чтобы набирать подписчиков и делать продажи. Подробное и актуальное руководство в 2021 году....

04 09 2024 17:12:59

Как создать личный бренд в компании — кейс Алексея Селезнёва, руководителя отдела аналитики Netpeak

Как создать личный бренд в компании — кейс Алексея Селезнёва, руководителя отдела аналитики Netpeak Создание репутации крутого специалиста — дело рук крутого специалиста....

03 09 2024 23:58:55

Какие элементы продающего текста нужно тестировать

Какие элементы продающего текста нужно тестировать 89% предпринимателей не тестируют свои продающие тексты. О том, что и как нужно тестировать, рассказал в гостевом посте директор Студии эффективных текстов Владимир Руков....

02 09 2024 16:31:55

Редизайн писем в email-маркетинге — на что обратить внимание

Иногда даже замена блока с промокодом или обновление хедера и футера способны освежить рассылки и принести продажи, заявки, повысить лояльность клиентов. Узнать больше!...

01 09 2024 9:29:14

Зачем нужна платформа Apple Search Ads при продвижении мобильного приложения

Зачем нужна платформа Apple Search Ads при продвижении мобильного приложения Реклама в ASA значительно повышает эффективность ASO....

31 08 2024 10:51:23

Исповедь SEO-специалиста

Интернет-маркетинг это не просто способ заработать. Про работу sео оптимизатора в Netpeak из первых уст...

30 08 2024 12:12:32

Как настроить передачу данных о заказе с помощью Google Tag Manager

Как настроить передачу данных о заказе с помощью Google Tag Manager Для эффективного ведения контекстной рекламы необходимо отслеживать продажи. Как сделать это с помощью Google Tag Manager расскажем в этой статье...

29 08 2024 21:57:47

Продвижение мобильного приложения в Яндекс.Директ — руководство для новичков

Продвижение мобильного приложения в Яндекс.Директ — руководство для новичков Детальная инструкция по настройке рекламы мобильного приложения в Яндекс.Директ....

28 08 2024 11:31:57

Антикейс: продвижение Endorphone.com.ua с помощью видеоблогеров

Как избежать ошибок при продвижении интернет-магазина с помощью видеоблогеров....

27 08 2024 14:58:54

Как установить пиксель Facebook и Instagram — отслеживаем целевые действия

Как установить пиксель Facebook и Instagram — отслеживаем целевые действия Пиксель Facebook — инструмент аналитики рекламной системы, который можно использовать и для Instagram....

26 08 2024 18:54:57

Деньги или карма: что делать, когда клиенту не нужен интернет-маркетинг

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

25 08 2024 12:48:17

Как научиться читать скрипты Google Рекламы

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

24 08 2024 20:32:32

Карточка товара — как создать качественное описание

Карточка товара — как создать качественное описание Почему дешевый копирайт не подходит для текстов карточки товара...

23 08 2024 16:40:43

Как добавить сайт в Google ***ytics, Яндекс.Метрику и LiveInternet — пошаговое руководство

Как добавить сайт в Google ***ytics, Яндекс.Метрику и LiveInternet — пошаговое руководство Как зарегистрировать и настроить новый сайт в сервисах веб-аналитики...

22 08 2024 6:59:22

Дропшиппинг: как за два месяца снизить стоимость привлечения лида на 25%

Дропшиппинг: как за два месяца снизить стоимость привлечения лида на 25% Дропшип предполагает минимум затрат со стороны предпринимателя. Например, не нужно думать о логистике, держать склад. Можно минимизировать и траты на рекламу. Узнать как!...

21 08 2024 19:11:11

Рейтинг CPA-сетей в Украине — лучшие партнерки по мнению читателей

Рейтинг CPA-сетей в Украине — лучшие партнерки по мнению читателей Лидеров определили открытым голосованием. В ТОП-списки вошли CPA-сети, которые набрали больше всего голосов суммарно и по отдельным критериям....

20 08 2024 13:37:13

Мобильное приложение для бизнеса: на что обратить внимание до того, как заплатить разработчику

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

19 08 2024 8:46:41

Влияют ли негативные комментарии на эффективность рекламы в Facebook? Тест на $1000

Помогают ли комментарии повысить эффективность рекламных постов? Единственный способ выяснить наверняка — провести A/B-тестирование в Facebook. Спойлер: тональность комментария также имеет значение в Facebook...

18 08 2024 9:31:45

Изменение поведения: факторы влияния

Изменение поведения: факторы влияния Формула изменения поведения Фогга и два красочных примера инсайде....

17 08 2024 14:56:41

Как настроить рекламу в Facebook Messenger, Instagram Direct и даже WhatsApp

Как настроить рекламу в Facebook Messenger, Instagram Direct и даже WhatsApp Что нужно знать перед запуском рекламы в мессенджерах....

16 08 2024 4:35:13

Реклама в Facebook, Instagram и ВКонтакте — размеры баннеров

Реклама в Facebook, Instagram и ВКонтакте — размеры баннеров Шпаргалка по размерам креативов для всех, кто запускает рекламу в соцсетях...

15 08 2024 2:24:10

Facebook Like или Share?

Facebook Like или Share? Facebook buttons. Пора поделиться самым волнующим вопросом 2011-го года...

14 08 2024 1:49:33

Как прогнозировать трафик поисковых кампаний в Google Ads

Прогнозирование с помощью «Планировщика ключевых слов»....

13 08 2024 15:24:21

Аудит мобильной версии сайта — подробное руководство

Аудит мобильной версии сайта — подробное руководство О видах мобильных версий, их плюсах и минусах, а также советы по аудиту....

12 08 2024 8:36:23

Как работают платежные системы для интернет-магазинов

Как работают платежные системы для интернет-магазинов Каждому бизнесу в интернете важно продумать систему оплаты для своих товаров или услуг. При этом следует учитывать объемы и нишу бизнеса. Узнать больше!...

11 08 2024 14:33:44

Как обучать комaнду по методу 70:20:10

Как эффективно распределять бюджет и ресурсы на обучение сотрудников. Статья будет полезной для собственников бизнеса и HR-специалистов....

10 08 2024 18:57:52

Как долго живет лид в базе email-рассылки?

Как долго живет лид в базе email-рассылки? Это исследование для тех, кто хочет выяснить, эффективно ли работать с лидами, если им год и больше...

09 08 2024 8:22:24

Как правильно продвигать приложение в странах арабского мира

Как правильно продвигать приложение в странах арабского мира Владельцы айфонов в странах арабского мира легче расстаются с деньгами за приложения. Вот почему арабская локаль в App Store так привлекательна...

08 08 2024 12:35:36

Демографический таргетинг в Google Ads

Демографический таргетинг в Google Ads Отныне мы можем настраивать показы рекламы на мужчин и женщин определенной возрастной группы....

07 08 2024 20:39:20

Трендовые инструменты в диджитал-маркетинге и рекламе — новое исследование Gartner

Трендовые инструменты в диджитал-маркетинге и рекламе — новое исследование Gartner В 2019 году в цикл зрелости вошли 28 технологий и инструментов...

05 08 2024 9:47:23

Ежемecячная подписка в Telegram — что это значит и кому может быть полезна

Ежемecячная подписка в Telegram — что это значит и кому может быть полезна Субъективный рейтинг новых функций мессенджера от Head of Telegram Network в Netpeak....

04 08 2024 13:20:23

Десять фишечек юзабилити — примеры, которые стоит почерпнуть

Десять фишечек юзабилити — примеры, которые стоит почерпнуть Семинар с примерами юзабилити решений от Twitter, Airbnb, Amazon и других компаний....

03 08 2024 18:46:12

От идеи роутера для цифровых кочевников до продаж на Amazon — история Nommi и фаундеров компании

От идеи роутера для цифровых кочевников до продаж на Amazon — история Nommi и фаундеров компании Nommi — сокращение от nomadic MiFi: роутер для современных цифровых кочевников...

02 08 2024 0:19:59

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