如何在R中发送读取csv的电子邮件并立即发送多封电子邮件?

时间:2016-07-30 03:13:14

标签: r email

我有包含电子邮件的CSV文件。 如何在r?

中发送多个电子邮件

错误1 send.mail函数没有获取data.frame值

Error in FUN(X[[i]], ...) : 
  Sorry, parameter type `NA' is ambiguous or not supported.

错误2 函数不从read.table中获取输入

Error in file.exists(body) : invalid 'file' argument

我的代码如下(仅作为示例的凭据)

temp <- read.csv("E:/OneDrive/M.Tech/temp.csv",header = FALSE)
m <- data.frame(temp)
email <- m[2,14]
rollno <- m[2,1]

file <- read.table("C:/Mehul Katara/New folder (2)/131004.txt",header =  TRUE,sep = ";")

send.mail(from = "user@gmail.com",
          to = email,
          subject = rollno,
          body = file,        
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "user@gmail.com", passwd = "password", ssl = TRUE),              
          authenticate = TRUE,
          send = TRUE)

1 个答案:

答案 0 :(得分:0)

这只有一个错误。使用:

file <- read.table("C://Mehul Katara//New folder (2)//131004.txt",header =  TRUE,sep = ";")

因为R windows二进制行为,所以您需要将路径中的/更改为//。上面的路径也可能不起作用,但在这种情况下,你需要摆脱空间,就像在#Mehul Katara&#34;中一样。请将您的文件放在filepath中没有空格的另一个地方。错误1只是因为错误2而来,并且应该在您修复错误2后立即执行。

来自文档

  

正文电子邮件正文作为文字。如果参数体指的是   现有文件位置,文件的文本被解析为正文   电子邮件。

理想情况下,您应该将函数调用更改为:

send.mail(from = "user@gmail.com",
          to = email,
          subject = rollno,
          body ="C://Mehul_Katara//New_folder_(2)//131004.txt"
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "user@gmail.com", passwd = "password", ssl = TRUE),              
          authenticate = TRUE,
          send = TRUE)