Как настроить отправку писем с помощью языка R
Как настроить запуск R-скрипта по расписанию? Хотите оперативно и своевременно узнавать о сбоях в работе скриптов R? Достаточно настроить оповещения на email. В этой статье я опишу, как настроить рассылку с помощью
Что можно отправлять в письмах:
- отчеты по результату работы скрипта на свою почту или по списку конкретных 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 достаточно мощный, чтобы
- Пакет «sendmailR» прост в установке, но не поддерживает процедуру аутентификации, и вы сможете отправлять письма только пользователям Gmail или G Suite.
- Пакет «mailR» поддерживает аутентификацию, но в процессе его установки вам также придется инсталлировать Java.
- С помощью языка R можно настроить не только отправку простых текстовых сообщений, но и письма:
- с текстом на кириллице;
- в формате HTML;
- с HTML-таблицей в теле.
Комментарии:
Как распредляются зарплаты по грейдам и специализации: ежегодное исследование Serpstat....
26 04 2024 9:47:12
Грамотный контент важен для всех, но особенно — для аутсорсов и стартапов в B2B. Если вы согласны с этим, давайте делать медиа....
25 04 2024 12:40:25
Как подготовиться и сделать из интервью полноценную историю, которая будет интересна аудитории...
24 04 2024 20:24:14
Значит так, делаем из лимонов лимонад — «выжимаем» максимум из ошибки 404...
23 04 2024 22:57:32
SEO-продвижение сайта, торгующего натуральной косметикой...
22 04 2024 3:15:48
Также повысили количество транзакций на 191% (по сравнению с аналогичным периодом прошлого года)....
21 04 2024 21:50:43
Как мы проводили самую летнюю конференцию в условиях постлокдayна, пандемии и неизвестности....
20 04 2024 1:26:27
Как использовать сервис Serpstat для оптимизации кампаний по контекстной рекламе...
19 04 2024 6:57:22
Как посты и ролики Reels становятся первыми в ленте, сториз, попадают в рекомендации. Instagram впервые напрямую рассказали о том, как оценивают контент....
18 04 2024 16:54:44
Tencent — китайская компания, мировой лидер в сфере игр. Все о создании компании, доходах, прибыли, инвестициях. Особенности ведения бизнеса в Китае — в пересказе статьи Паки Маккормик. Читать дальше!...
17 04 2024 1:46:56
Часто в распоряжении клиента только интерфейс конструктора сайтов, весьма ограниченный в функциональности. Тогда на помощь интернет-маркетологу приходит сервис Tag Manager, благодаря которому можно настроить необходимый код расширенной электронной торговли....
16 04 2024 5:16:14
Виктория Игнатьева опубликовала новый кейс по продвижению интернет-магазина детской одежды, обуви и товаров: ROMI (возврат маркетинговых инвестиций) 319%....
15 04 2024 12:59:18
Возможности и перспективы Clubhouse, лайфхаки для пользователей и бонус в конце...
14 04 2024 23:59:20
О чем стоит задуматься владельцам бизнеса и пользователям больших сайтов и почему Марку Цукербергу надо брать пример с телефонных сетей...
13 04 2024 10:44:50
Google Data Studio: подробная инструкция и обзор возможностей...
12 04 2024 18:19:10
Пройдем вместе путь вебмастера от первых шагов и до вершины ТОПа :)...
11 04 2024 14:57:23
Опыт коллег и их рекомендации — самая ценная валюта в арбитраже. Давайте объединим усилия и составим актуальный рейтинг СРА-сетей Украины....
10 04 2024 13:14:11
Образец товарного фида можно использовать при запуске динамических объявлений в поисковой сети Яндекса и Google, в кампаниях со смарт-баннерами в Яндекс.Директ, в динамических медийных кампаниях Google Рекламы, в товарной рекламе — с помощью Google Merchant Center....
09 04 2024 15:38:17
Придумать цепляющие заголовки для 1000 репостов в соцсетях — что можно узнать в результате анализа миллиона заголовков в блогах....
08 04 2024 23:31:47
Гайд по типам рекламы в соцсетях для SMM-, PPC-специалистов, блогеров и владельцев бизнеса в зависимости от целей, которые вы ставите перед продвижением. С конкретными рекомендациями и примерами. Узнать больше!...
07 04 2024 5:16:23
Не знаешь как раскрутить сайт? Мы подготовили 11 этапов SEO-продвижения сайтов в поисковых системах....
06 04 2024 5:48:52
Казахстанские реалии: данные по более 1 млн кликов в 23 тематиках и 15 городах....
05 04 2024 18:59:19
Всё, что нужно знать заказчикам услуг о внутренней кухне PM-специалистов...
04 04 2024 13:39:18
Охват и средняя цена за клик в самых популярных тематиках....
03 04 2024 10:29:17
Многие специалисты недооценивают эффективность отчетов Яндекс.Метрики. Очень зря. Вот чем они могут быть полезны....
02 04 2024 19:20:28
Лучшие маркетинговые и бизнес-фишки от Давида Брауна (Weblium), Владислава Флакса (OWOX), Александра Галкина (Competera), Люси Литерадо (Reply.io), Вадима Нехая (Depositphotos), Валерия Грабко (PromoRepublic), Игоря Дебатура (Uploadcare), Руслана Савчишин...
01 04 2024 14:51:34
Как бизнес подстраивается под новые привычки покупателей в стиле фиджитал и O2O2O....
31 03 2024 8:48:24
Первая реакция на перегорание — послать все к чертям собачьим. Очень заманчиво, но правильно ли убегать от всех проблем?...
30 03 2024 21:29:19
Главная задача крауд-маркетинга — помочь, дать пользователю экспертный ответ и уже в последнюю очередь — оставить ссылку...
29 03 2024 6:12:57
Данные, приведенные в исследовании, могут помочь в составлении медиапланов по продвижению в интернете....
28 03 2024 18:41:27
Чтобы создавать удобные отчеты, импортируйте данные из Яндекс.Директ в Microsoft Power BI с помощью язык R...
27 03 2024 2:54:23
Ноу-хау, интересные для бизнеса, которые вошли в ежегодный рейтинг журнала Time....
26 03 2024 23:27:37
Как быстро создавать и запускать объявления, а также массово вносить правки в кампании с помощью файла Excel...
25 03 2024 14:51:27
Как настроить эксперимент на сайте без сторонней помощи...
24 03 2024 14:45:24
Кейс продвижения YouTube-канала магазина товаров для рыбалки...
23 03 2024 0:58:52
Каким образом бизнес-модель маркетплейса может помочь увеличить трафик интернет-магазина в целом....
22 03 2024 7:45:59
Благодаря внедрению интеpaктивной формы подписки увеличили количество ежемecячных подписок на 100%, доход — на 51%, а коэффициент транзакций — на 71%....
21 03 2024 22:21:14
Информация о любой организации распространяется в интернете очень быстро, особенно негативная. Поэтому необходимо учиться управлять своей репутацией....
20 03 2024 18:12:41
Если у вас есть продукт, о котором миру стоит узнать, книга Pitch perfect придется вам очень кстати....
19 03 2024 21:35:16
Открытие проверенных действий по увеличению продаж...
18 03 2024 18:36:53
Готовые триггерные письма и сценарии позволяют быстро запустить триггеры после реализации технических заданий разработчиком....
17 03 2024 3:10:18
Неля Серебро рассказывает про внутреннюю кухню блога Netpeak...
16 03 2024 12:24:25
Если вы до сих пор сомневаетесь — прекратите это и делитесь своим опытом с читателями, потенциальными клиентами, инвесторами и партнерами. Узнать больше!...
15 03 2024 22:59:59
У каждого сайта в топе есть страница, о существовании которой знают только роботы и... SEO-специалисты. Это robots.txt или индексный файл....
14 03 2024 19:49:53
79% владельцев смартфонов, если верить Google, используют их для покупок или заказов услуг. Это более двух миллиардов человек. Ничего удивительного, что даже Google запустил собственный сервис Call Tracking. Кому и зачем жизненно важно отслеживать звонки...
13 03 2024 6:20:46
Много интересных фактов о работе мозга и новейших исследованиях социологии и психологии....
12 03 2024 6:50:11
Визуализация данных для новичков. Отвечаем на вопрос читателя....
11 03 2024 4:48:34
Чтобы эффективно продвигать товар или услугу в Instagram, необходимо повысить охват целевой аудитории. Одно из возможных решений — привлечение блогеров. Казалось бы, достаточно предложить платное размещение рекламы…...
10 03 2024 17:45:31
Главные вопросы при запуске и настройке любых кампаний: «чего я хочу достичь?», «помогает ли текущая кампания достичь желаемых результатов?», «влияет ли кампания на эффективность других кампаний и источников?». Узнать больше....
09 03 2024 9:37:12
Зная стоимость клика в вашей тематике или регионе, коэффициент конверсии на сайте, вы можете оценить объем необходимых в рекламу инвестиций и прогнозировать стоимость конверсии. Узнать больше!...
08 03 2024 1:51:50
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::