woldemarg / zenlix_registration

регистрация новых пользователей
0 stars 0 forks source link

Проблемы кодировки в mailR #2

Open woldemarg opened 7 years ago

woldemarg commented 7 years ago

Проблема с кодировкой при отправке html-письма. Создание html-письма из markdown и его отправка описаны здесь.

Rmd-файл:

**тест** (ukrainian)
**test** (english)

R-script для создание и отправка письма:

library(knitr)
library(mailR)

knit2html(input = "encoding_test.Rmd", encoding = "UTF-8")

send.mail(
  from = "FROM@gmail.com",
  to = "TO@gmail.com",
  subject = "encoding test",
  html = TRUE,
  body = "encoding_test.html",
  encoding = "utf-8",
  smtp = list(
    host.name = "smtp.gmail.com",
    port = 465,
    user.name = "myUsername",
    passwd = "myPassword",
    ssl = TRUE
  ),
  authenticate = TRUE,
  send = TRUE
)

При просмотре html-файла в браузере кодировка правильная, notepad++ показывает кодировку UTF-8. Однако при получении письма украинские символы отражаются некорректно:

тест (ukrainian) test (english)

Аналогичная проблема и при использовании библиотеки rmarkdown. Обсуждение проблемы открыто nfr;t на странице библиотеки mailR - здесь

woldemarg commented 7 years ago

Проблема с кодировкой при вызове R-scripta из bat-файла

R-script для отправки простого письма:

library(mailR)

send.mail(
  from = "FROM@gmail.com",
  to = "TO@gmail.com",
  subject = "encoding test",
  body = "тест (ukrainian)\ntest (english)", #plain text in a body of an e-mail
  encoding = "utf-8",
  smtp = list(
    host.name = "smtp.gmail.com",
    port = 465,
    user.name = "myUsername",
    passwd = "myPassword",
    ssl = TRUE
  ),
  authenticate = TRUE,
  send = TRUE
)

При выполнении скрипта в RStudio письмо на почту приходит с корректной кодировкой. Однако при вызове этого же скрипта из bat-файла через Rscript результат получается такой:

тест (ukrainian) test (english)

Этот же вопрос открыт на странице библиотеки здесь.

woldemarg commented 7 years ago

Временное решение Т.к. основной скрипт выполняется по расписанию и не может запускаться каждый раз через RStudio временное решение проблемы кодировки такое: