Как добавить форматирование в mailR тело письма - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь отправить письмо об использовании пакета mailR, но поскольку это довольно сложный вопрос, я хотел бы добавить немного форматирования:

  1. "Не руби этот лес!" должно быть жирным шрифтом
  2. Нумерованный список должен быть красиво отформатирован

.

library(mailR) # library used to send mails

# The text I would like to send:
Text <- "Hi! 

Do not cut this forest!

The reason for this  ar as follows:
1. Trees are good
2. bla bla bla

best regards,
MS"

#In reality I am reading it from TXT file
text_real <- readChar('text_real.txt', file.info('text_real.txt')$size)
text_real <- enc2utf8(text_real)

sender <- ...
recipients <- ...
password <- ...
title <- "title"


#Sending mail
send.mail(from = sender,
          to = recipients,
          subject = title,
          body = Text,
          encoding = "utf-8",
          smtp = list(host.name = "smtp.gmail.com", port = 465, 
                      user.name = sender,            
                      passwd = password, ssl = TRUE),
          authenticate = TRUE,
          send = TRUE)

Альтернативно я знаю, что mailR использует html, поэтому я написал все это в Мире и сохранил в виде HTML. К сожалению, это не сработало и породило вторую проблему

Text <- paste(readLines("real text.htm"), collapse="\n")
  1. тело письма на самом деле отправить ::

    ...

  2. Мне нужно персонализировать каждое письмо, в первом решении (txt) я использовал простую функцию gsub и считаю, что она здесь не будет работать.

Я также пытался добавить в TXT файл, форматирование html (<b> и <strong>) вручную, но это не сработало.

Спасибо!

1 Ответ

1 голос
/ 12 июня 2019

Создание html было правильным, но вы не читаете его в R. send.mail() может отправлять html-файлы как тело.

library(mailR)

send.mail(from = sender,
          to = recipients,
          subject = title,
          body = "path-to-html-file",  #pass the file
          html = TRUE,                #tell send.mail you're using html
          encoding = "utf-8",
          smtp = list(host.name = "smtp.gmail.com", port = 465, 
                      user.name = sender,            
                      passwd = password, ssl = TRUE),
          authenticate = TRUE,
          send = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...