gpt4 book ai didi

r - 使用 mailR 将 data.frame 添加到电子邮件

转载 作者:行者123 更新时间:2023-12-01 11:27:51 25 4
gpt4 key购买 nike

我正在尝试使用 mailR 包从 r 发送电子邮件。电子邮件非常简单,我只需要它在电子邮件正文中显示一个 data.frame。

我可以使用下面的代码发送电子邮件,但正在努力将 data.frame 添加到它的正文中。

这是我到目前为止使用的代码:

library(mailR)
sender <- "email@gmail.com"
recipients <- c("email@gmail.com")

email <- send.mail(from = sender,
to = recipients,
subject="Subject",
body = "Body",
smtp = list(host.name = "aspmx.l.google.com", port = 25),
authenticate = FALSE,
send = FALSE)

email$send()

任何帮助深表感谢!

最佳答案

下面是一个适合我的解决方案。您需要使用 htmlTable 将数据框转换为 HTML 表格。包裹。请参阅下面的详细信息。

library(mailR)
library(htmlTable)

# Create a reproducible data frame
x <- head(mtcars)

# Convert the data frame into an HTML Table
y <- htmlTable(x, rnames = FALSE)

# Define body of email
html_body <- paste0("<p> This is a test email. </p>", y)

# Configure details to send email using mailR
sender <- "SENDER@gmail.com"
recipients <- c("RECEIPENT@gmail.com")

send.mail(from = sender,
to = recipients,
subject = "Test Email",
body = html_body,
smtp = list(host.name = "smtp.gmail.com",
port = 465,
user.name = "USERID@gmail.com",
passwd = "PASSWORD",
ssl = TRUE),
authenticate = TRUE,
html = TRUE,
send = TRUE)

以下是如何在 gmail 中输出外观。

enter image description here

如果您想要一个带边框的表格,请使用以下代码。这使用了一点 CSS 来格式化表格。
library(mailR)
library(htmlTable)

x <- head(mtcars)
y <- htmlTable(x, rnames = FALSE)

html_body <- paste0("<html><head>
<style>
body{font-family:Calibri, sans-serif;}
table{border-left:1px solid #000000;border-top:1px solid #000000;}
table th{border-right:1px solid #000000;border-bottom:1px solid #000000;font-size:13px; font-weight:bold; margin: 0px; padding-left: 5px; padding-right: 5px; margin: 0px;}
table td{border-right:1px solid #000000;border-bottom:1px solid #000000;font-size:13px; font-weight:normal; margin: 0px; padding-left: 5px; padding-right: 5px; margin: 0px;}
</style>
</head><body><p> This is a test email. Ignore it.</p>",
y,
"</body></html>")

sender <- "SENDER@gmail.com"
recipients <- c("RECIPIENTS@gmail.com")

send.mail(from = sender,
to = recipients,
subject = "Test Email",
body = html_body,
smtp = list(host.name = "smtp.gmail.com",
port = 465,
user.name = "USERNAME@gmail.com",
passwd = "PASSWORD",
ssl = TRUE),
authenticate = TRUE,
html = TRUE,
send = TRUE)

下面是 gmail 中表格的截图。

enter image description here

关于r - 使用 mailR 将 data.frame 添加到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com