Как настроить отправку писем с помощью языка 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-таблицей в теле.
Комментарии:
Данные по 42,5 млн кликов в 25 тематиках и 391 городу...
14 10 2026 14:41:38
Как формируется цена на услугу онлайн-рекламы в специализированном агентстве, и на какие бюджеты предпринимателям стоит ориентироваться...
13 10 2026 9:47:35
Что нового, Netpeak? Новые стратегии контекстной рекламы и email-маркетинга, новая рубрика в блоге, а также о специфике работы отдела продаж Netpeak в карантин и о законах построения партнерской программы — всё читайте в материале!...
12 10 2026 5:24:12
Каким образом бизнес-модель маркетплейса может помочь увеличить трафик интернет-магазина в целом....
11 10 2026 4:31:13
Используйте методы Элияху Голдратта для оптимизации процессов в жизни и на работе...
10 10 2026 18:38:44
Как борьба с зарплатным неравенством становится трендом...
09 10 2026 10:45:57
Работа с умными рекламными кампаниями с оплатой за конверсии в контекстно-медийной сети. Особенности настройки и оптимизации в кейсе продвижения недвижимости. Узнать больше!...
08 10 2026 4:22:51
Осторожно: очень страшно. Про теневой бан, гифки, цену клика, рекламный бюджет, ответы подписчикам, ошибки, наличие интернета подробно и в драматических деталях. Читайте в статье!...
07 10 2026 4:37:52
Качественные исходящие ссылки и исходящий мусор, который только вредит репутации сайта. Находим и отсеиваем....
06 10 2026 6:29:50
Наибольший эффект по продвижению сайта при минимальных затратах — именно таков принцип SEO growth hacking. Как найти кратные точки роста, читайте статье....
05 10 2026 18:54:15
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
04 10 2026 7:36:27
Как отслеживать конверсии при многокaнaльном взаимодействии покупателя с вашим сайтом? Читайте далее...
03 10 2026 21:43:18
Ярослав Легенчук поделился историей успешного «переезда» площадки IT-продукта из Рунета в страны ЕС...
02 10 2026 12:30:40
В семье Leo Burnett - 7750 человек из 84-х стран мира. В Украине всего - 90 творческих единиц....
01 10 2026 4:46:44
Хотите раскрутить свои соцсети в 2022 году? Тогда уже сейчас нужно задуматься, что будете публиковать. В статье расскажем, какой контент будет в тренде в будущем году....
30 09 2026 4:58:42
Менеджер экспортного направления Гугл Украина — об особенностях выхода на рынки разных стран мира....
29 09 2026 16:49:32
Реклама мобильных приложений. Хотите показывать рекламу в играх? Вам сюда. Узнайте как правильно настроить показ рекламы на мобильных устройствах....
28 09 2026 2:52:40
Что нужно знать о целевой аудитории, как грамотно воровать у других и что нужно сделать, чтобы настроить идеальную рекламную кампанию....
27 09 2026 1:59:59
И чем этот тип отслеживания событий отличается от Client-side. Узнать!...
26 09 2026 8:44:45
Все успешные люди немного сомневаются в своих достижениях и рефлексируют о большом количестве ошибок. Не ок, когда сомнения затягивают и разрушают самооценку, создают постоянное напряжение. Давайте разбираться с синдромом самозванца....
25 09 2026 0:13:45
Так называемый Humankindex (доброжелательный стиль управления) способствует инновациям в компании....
24 09 2026 20:41:37
Ссылки называются вечными, потому что их внедряют один раз и навсегда, но это не значит, что такие ссылки однажды не удалят (что поведет к потере трафика). Узнать больше!...
23 09 2026 15:43:26
Атрибут rel="canonical" помогает бороться с дублированием контента и обезопасить сайт от дублирования и копирования...
22 09 2026 0:27:35
От создания аккаунта до выбора пикселя — просто и понятно про TikTok....
21 09 2026 17:36:38
Вести бизнес в интернете с помощью развлекательного сайта, СМИ, узкоспециализированного портала вполне реально. Правда, нужно знать, как на них заpaбатывать....
20 09 2026 14:26:13
Видеомаркетинг должен стать обязательной частью рекламной онлайн-стратегии, и мы собрали несколько подтверждений этому в нашей инфографике....
19 09 2026 5:15:40
Новая инструкция, которую можно применять к любым задачам в Google Таблицах....
18 09 2026 16:38:43
Заимствуете лучшее, коллекционируйте идеи и не откладывайте тестирование фишек в долгий ящик...
17 09 2026 9:25:24
Сооснователь SUPERLUDI Влад Ноздрачев рассказал в своем подкасте о развитии инфобизнеса. Предлагаем вам вольный пересказ....
16 09 2026 1:54:40
До понижения в органической выдачи Гугл у сайта есть около 15 дней с момента появления сообщения о вредоносном контенте....
15 09 2026 3:23:43
Как уменьшить время ответа сервера и повысить общий показатель скорости загрузки сайта...
14 09 2026 19:22:33
Как создавать интеpaктивные рассылки-сайты и чем они хороши...
13 09 2026 21:13:10
И как с ними справиться. Рабочие инструкции для Chief Executive Office и менеджеров в целом. Давайте управлять комaндой и собой более эффективно и без выгорания. Узнать больше!...
12 09 2026 17:19:43
Что учитывать при продвижении недвижимости, клиник красоты, магазинов косметики, сайтов по продаже семян, шин?...
11 09 2026 18:48:18
Чтобы увеличить продажи и улучшить их эффективность в новых условиях необходимо применять «социальные доказательства»....
10 09 2026 14:52:30
Как правильно мотивировать и демотивировать себя — теория и кейсы. Как бросить курить, начать бегать и наконец-то приступить к изучению английского. Читать!...
09 09 2026 6:52:30
Как с помощью Google Tag Manager отслеживать исходящие ссылки на сайте и загрузки файлов с него...
08 09 2026 1:57:35
Используем возможности Google Cloud Platform в работе с R...
07 09 2026 13:13:38
Особенности продвижения локального офлайн-бизнеса...
06 09 2026 7:23:31
Как узнать срок хранения товаров в корзине и настроить ремаркетинг для завершения покупок...
05 09 2026 14:40:56
Новая услуга от Netpeak по ведению Instagram и Facebook...
04 09 2026 9:45:53
Как создать онлайн кампанию по продвижению мобильного приложения с максимальной отдачей....
03 09 2026 23:44:55
Несколько фишек Google Tag Manager, чтобы сделать продвинутые списки ремаркетинга....
02 09 2026 14:28:37
Вместо легкой пятничной темы, представляю вольный перевод статьи автора книги «Позитивная иррациональность»....
01 09 2026 15:53:10
Стартовый урок о том, как настроить визуализацию данных из Google ***ytics с помощью Google Spreadsheets...
31 08 2026 4:57:24
Бренды поделились инсайтами на ДиВи Конф — фишки от MEGOGO, Google, TikTok, Banda, McCann, I am IDEA, AIR Brands, Rocket и Фокстрот...
30 08 2026 21:54:34
Как научиться продвигать мобильные приложения и заpaбатывать на этом....
29 08 2026 17:25:25
Одесские магазины, где продают вечерние и свадебные платья нуждаются в особом внимании интернет-маркетинга. Как настроить контекстную рекламу для малого и среднего бизнеса со скромными маркетинговыми бюджетами...
28 08 2026 4:27:31
Лучшие маркетинговые и бизнес-фишки от Давида Брауна (Weblium), Владислава Флакса (OWOX), Александра Галкина (Competera), Люси Литерадо (Reply.io), Вадима Нехая (Depositphotos), Валерия Грабко (PromoRepublic), Игоря Дебатура (Uploadcare), Руслана Савчишин...
27 08 2026 8:32:26
Кейсы, фишки и советы, опыт крупных брендов, маркетологов....
26 08 2026 20:50:28
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::