用R自动发送邮件,在某些工作场合是非常实用的,能极大提高工作效率。本文介绍用R实现自动发送邮件。
在R语言中,用mailR包实现邮件的自动发送,用脚本发邮件,属于第三方邮件发送方式,需要有一个smtp服务器的支持。常见的邮箱,如qq,goole,163等都有smtp服务。
开通smtp服务
本文以网易的163邮箱为例,如下图,在设置中,找到smtp服务,服务器地址可以看到是smtp.163.com,授权码的开通需要发送短信,并且只显示一次,建议自己备份。
安装包
install.packages("mailR")
发送邮件
在mailR包中,用send.mail函数发送邮件,除了发件人,收件人等常规参数设置外,最重要的参数是smtp
,里面包含了smtp服务器的一些参数设置,设置的不对,往往会导致发邮件失败。
# 加载包
library(mailR)
# 收件人邮箱
receiver <- "xxxx@qq.com"
# 发件人邮箱
sender <- "xxxx@163.com"
# 邮件主题
emailSubject <- "send email with R"
# 邮件内容
emailBody <- "Use r to automatically send mail.关注公众号FTDdata."
# 邮件附件
emailFile <- "xx/xx.png"
# 发送邮件
send.mail(from = sender,
to = receiver,
subject = emailSubject,
body = emailBody,
smtp = list(host.name="smtp.163.com", # smtp 服务器主机名
port=465, # 默认端口
user.name=sender, # 用户名
passwd="xxxx", # 密码(授权码)
ssl=TRUE),
authenticate = TRUE,
send = TRUE,
attach.files = emailFile,
encoding = "utf-8" # 编码
)
网友评论