我搜索了SO和谷歌,似乎无法找到我的问题的解决方案.我正在尝试使用sendmailR包在R中发送HTML格式的电子邮件.纯文本电子邮件工作正常,但后来无法从纯文本切换到HTML.
我的代码:
require(sendmailR)
from <- "alertbot@companyname.com"
message = "<HTML><body><b>Hello</b></body></HTML>"
to = c("me@companyname.com")
subject = "Test Monitor Alert"
sendmail(from, to, subject, msg = msg,control=list(smtpServer="smtp-gw1.wal-mart.com"),headers=list("Content-Type"="text/html; charset=UTF-8; format=flowed"))
Run Code Online (Sandbox Code Playgroud)
我收到了电子邮件,但它是纯文本和电子邮件正文包含消息而不是HTML格式的文本.请帮忙.
Kar*_*ner 13
这是可能的,参见/sf/answers/1535138951/ 只需添加:
msg <- mime_part(message)
msg[["headers"]][["Content-Type"]] <- "text/html"
sendmail(from, to, subject, msg = msg, ...)
Run Code Online (Sandbox Code Playgroud)
sendmailR不能这样做,因为硬编码将消息部分作为文本发送出去.如果查看包源,sendmail.R的第38行如下:
writeLines("Content-Type: text/plain; format=flowed\r\n", sock, sep="\r\n")
Run Code Online (Sandbox Code Playgroud)
改为
writeLines("Content-Type: text/html; format=flowed\r\n", sock, sep="\r\n")
Run Code Online (Sandbox Code Playgroud)
就像你试图通过选项,它会工作.
更新:sendmailR现在允许HTML电子邮件(请参阅下面的Karl答案和/sf/answers/1535138951/).