如何在 Windows 中从 R 发送带有附件的电子邮件
我计划了一个从 Windows 计算机运行的 R 脚本。
完成后,我希望这个脚本自动发送一封电子邮件,并附加一些日志文件。
将 shell()
与其他一些脚本一起使用可能是可能的,但我想知道 R 中是否有更好的解决方案。 谢谢。
I have a scheduled an R script running from a windows machine.
After it finishes, I wish this script to automatically send an email with some log file attached.
Using shell()
with some other scripts may be possible, but I was wondering if there is a better solution within R.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
对于那些建议使用“mailR”的人来说——这是可行的方法,但在 ubuntu 上安装起来很困难。这是在 ubuntu 上安装“javaR”的资源,它允许您安装“mailR”
https://www.r-bloggers.com/2018/02/installing-rjava-on-ubuntu/
For those who suggested using 'mailR' - this is the way to go, but it is difficult to install of ubuntu. Here is a resource to install 'javaR' on ubuntu which will allow you to install 'mailR'
https://www.r-bloggers.com/2018/02/installing-rjava-on-ubuntu/
虽然已经晚了,但您可以通过正确使用 RDCOMClient 来避免使用 vbscript,如 此示例来自 R-Help。
Late to this, but you can avoid shelling out to vbscript by using RDCOMClient correctly, as in this example from R-Help.
sendmailR 在 Windows 7 上为我工作。我引用了 http://cran .es.r-project.org/web/packages/sendmailR/sendmailR.pdf
smtpServer= Outlook 2010 的信息位于文件 -> 中账户设置->账户设置->双击您的帐户 -> “服务器”框中的文本
此外,可以通过在消息列表中添加另一个 mime_part 来发送多个文件,如下所示(我也将其压缩):
sendmailR works for me on Windows 7. I referenced http://cran.es.r-project.org/web/packages/sendmailR/sendmailR.pdf
smtpServer= info for Outlook 2010 is in File -> Account Settings -> Account Settings -> double click your account -> text in "Server" box
In addition, multiple files can be sent by adding another mime_part to the msg list as follows (I also condensed it):
使用 mailR - 它适用于身份验证、附件,它会自动发送 txt 消息以及 html 等。
mailR
需要 rJava,这有时会有点痛苦。在 Windows 上我没有遇到任何问题。在 ubuntu 上,这解决了我遇到的一个问题:在 R 中
(如果您在使用 rJava 时遇到问题 - 在终端中尝试 sudo R CMD javareconf )
mailR 很容易使用并在 github 页面上有详细记录。
文档中的示例
注意:您的 smtp 服务器可能会发现过度使用可疑。例如gmail 就是这种情况。因此,发送几封邮件后,您可能需要登录 gmail 帐户,看看是否帐户已被暂时禁用。另请注意,如果您使用采用双因素身份验证的 Gmail 帐户,则需要使用应用程序专用密码。
Use mailR - it works with authentication, attachments, it automatically send txt message along with html and more.
mailR
requires rJava which can be a bit of a pain sometimes. On windows I haven't had any problems. On ubuntu this solved the one issue I've had:in R
(if you have trouble with rJava - try
sudo R CMD javareconf
in terminal)mailR
is easy to work with and well documented on the github page.Example from the documentaion
Note: your smtp server might find excessive use suspicious. This is the case with e.g. gmail. So after sending a few mails you probably have to log in to the gmail account and see if the account has been temporarily disabled. Also note that if you use a gmail account with two-factor authentication you need to use an application specific password.
您愿意接受 Twitter 消息吗?您可以使用 Rcurl 将更新发布到 Twitter,然后可以将其以文本形式转发到您的手机,或者通过通知设置转发到您的电子邮件。
请参阅此处:http://www.sakana.fr /blog/2007/03/18/scripting-twitter-with-curl/
Would you settle for a twitter message? You could use Rcurl to post an update to twitter, which can then be forwarded to your cell phone as a text, or to your email via the notification settings.
See here: http://www.sakana.fr/blog/2007/03/18/scripting-twitter-with-curl/
您研究过
sendmailR
包了吗?它允许 SMTP 提交消息,您可以编辑该功能以允许附件。话又说回来,如果它只有一个日志文件,那么正如您提到的那样,使用 shell() 可能是值得的。Have you looked into the
sendmailR
package yet? It allows SMTP to submit a message and you could probably edit the function to allow an attachment. Then again, if its only one log file it might just be worth it to useshell()
as you mentioned.对于 Windows,可以一起解析 VB 脚本(参见例如 http://www.paulsadowski.com/ wsh/cdo.htm ),然后通过 shell 调用它。
这可能看起来像这样:
For Windows one might parse together a VB-Script (see e.g. http://www.paulsadowski.com/wsh/cdo.htm ) and then call it via shell.
This might look like this:
只是想提醒那些想要 twilio 服务的自我通知功能的人,他们提供免费服务向您自己的手机发送短信。此处提供了使用 R 的演练https://dreamtolearn.com/ryan/data_analytics_viz/78
附有示例代码,只需将凭据替换为您自己的凭据即可。
Just want to remind people who wants self-notifying feature of a service called twilio, they provide free service to send sms to your own cellphone. A walk-through using R is available here https://dreamtolearn.com/ryan/data_analytics_viz/78
An example code is attached, just replace the credentials with the ones of your own.
这是使用“mailR”包发送电子邮件的简单代码片段
Here is a simple code snippet for sending an e-mail by using "mailR" package