2015-01-07 96 views
1

我試圖將R創建的JPEG圖像嵌入到電子郵件中,目的是創建一個顯示帶有動態文本的圖表的自動日常電子郵件。我能夠附加圖像,並指定競爭ID;但是,當我發送郵件並在Outlook中打開結果時,我會在圖片應該顯示的地方收到問號。該圖像確實成功附加到電子郵件上,看起來圖像只是不在HTML中內聯呈現。使用郵件發送內嵌圖像

這裏是我的示例代碼:

library(mailR) 

send.mail(from = "[email protected]", 
      to = "[email protected]", 
      subject = paste("Results for the date ending ", Sys.Date()-1, sep = ""), 
      body = '<html> Test image - <img src="cid:test_img.jpg" /></html>', 
      html = TRUE, 
      smtp = list(host.name = "xxx.xxx.com", user.name = "[email protected]", passwd = "xxx"), 
      attach.files = '/Users/xxx/Documents/Rplots/test_img.jpg', 
      authenticate = TRUE, 
      inline = TRUE, 
      send = TRUE) 

上這是怎麼回事任何想法?

+3

這可能只是一個過濾器。在電子郵件中有很多「xxx」,Outlook可能認爲它是色情內容,並且爲了您自己的安全阻止它。 – Dason

+0

這些x只是爲了掩蓋我的實際電子郵件,密碼等等 - 它們並不真正在我的代碼中。 – Bryan

+0

哦,我知道。儘管只是用文字表達笑話總是很難。 – Dason

回答

2

這裏是一個工作的Gmail例如:

library(mailR) 
png(file.path(getwd(), "..", "img.png")); plot(0); dev.off() 
# Gmail users may have to switch https://www.google.com/settings/security/lesssecureapps before the send 
send.mail(from = "[email protected]", 
      to = "[email protected]", 
      subject = "Subject of the email", 
      body = '<img src="../img.png">', 
      html = TRUE, 
      inline = TRUE, 
      smtp = list(host.name = "smtp.gmail.com", 
         port = 465, 
         user.name = "...", 
         passwd = "...", 
         ssl = TRUE), 
      authenticate = TRUE, 
      send = TRUE) 

您必須引用的相對路徑的工作目錄提到here,和 - 當然 - 通過數據交換...

+0

很酷 - 是的,這裏的訣竅是添加本地路徑圖像作爲源,而不是cid。我的最終HTML看起來像:。 – Bryan

相關問題