Встраивание изображения в html письмо с использованием R - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь отправить изображение html по электронной почте в R. Сначала я попытался отправить изображение, используя следующий код

send_mail<-function(){
sender <- "asasa<support@aa.com>"
recipients <- c("aasb@aa.com", "asab@aa.com", "asb@aa.com")
send.mail(from = sender,
        to = recipients,
        subject = paste0("Send mail with image"),
        body <- <html><img src="../img.png"></html>,
        smtp = list(host.name = "XX", port = XX,
                    user.name = "XXX@gmail.com",            
                    passwd = "XXX", ssl = TRUE),
        authenticate = TRUE,
        html = TRUE,
        send = TRUE)
}
send_mail()

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

library(RCurl)
txt <- base64enc::base64encode("abc_2018-11-27.png")
html1 <- sprintf('<html><body><img src="data:image/png;base64,%s"></body></html>', txt)
send_mail<-function(){
sender <- "asasa<support@aa.com>"
recipients <- c("aasb@aa.com", "asab@aa.com", "asb@aa.com")
send.mail(from = sender,
    to = recipients,
    subject = paste0("Send mail with image"),
    body <-  html1,
    smtp = list(host.name = "XX", port = XX,
                user.name = "XXX@gmail.com",            
                passwd = "XXX", ssl = TRUE),
    authenticate = TRUE,
    html = TRUE,
    send = TRUE)
 }
send_mail()

Так что еще раз почта была отправлена ​​в gmail, только код base64 был виден в теле письма, в то время какв outlook была просто иконка с отсутствующим изображением.

Любая идея, в чем здесь проблема или как я могу отправить html изображение по почте.Изображения находятся в локальной системе.

1 Ответ

0 голосов
/ 28 ноября 2018

Просто измените

    body <- <html><img src="../img.png"></html>,

на

    body = paste0('<html><img src="../img.png"></html>'),

и у вас есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...