R軟件每日自動發(fā)送郵件(mailR包)

文章所用到的代碼主要來源于網(wǎng)絡,經(jīng)過了我的稍許調(diào)整,此外文章提到了我自己運行時碰到一些問題及相應解決辦法。

一、下載mailR包

利用mailR包,可以將R程序的結果及附件發(fā)送給他人。
首先需要下載mailR包。

install.packages("mailR")

注意,mailR需要在JAVA環(huán)境下運行,因此請先確保電腦里安裝了jdk。
如果安裝了jdk和mailR包后,library(mailR)依舊顯示“Error: ‘rJava’程輯包或名字空間載入失敗”,這是環(huán)境變量的設置上的原因。一般的解決辦法是重新設置環(huán)境變量,網(wǎng)上相關教程有很多。但是我把jdk直接安裝在了R同一目錄下也同樣解決了調(diào)用rJava失敗這個問題(譬如我的安裝位置是C:\R\R-3.2.5\bin\x64)。

調(diào)用mailR包應該還需要下載stringr包等,一般我們在下載mailR包時R軟件就會直接幫我們自動下載,不需要我們自己安裝。但如果有包無法安裝或者下載速度非常慢,建議換個鏡像,國外鏡像經(jīng)常會不穩(wěn)定,建議換成國內(nèi)的地址(Rstdio點擊Tools,選擇Global Option,在出現(xiàn)的對話框中選擇Packages,點擊change,將鏡像換到清華大學等國內(nèi)的就好)。如果還是下載不了R包的話,可以自己去官網(wǎng)(https://mirrors.tuna.tsinghua.edu.cn/CRAN/)手動下載,把下載下來的包解壓到library文件夾即可。

接下去就可以在Rstdio里運行下面的代碼,從而通過R直接發(fā)送郵件。

二、發(fā)送郵件

首先,自定義一個函數(shù)mysendmail。修改標出的兩個地方(發(fā)送郵箱和郵箱密碼),其他部分一般不需要修改。


library(mailR)

mysendmail =function(wd,to,cc,subject,msg,files=array()){

   if(is.na(files)[1]{

      attach.files <- NULL

   }else{

      attach.files <-paste(wd,files,sep='/')

   }

   from = "XXXX@XX.com"   #這里輸入發(fā)送者的郵箱

   send.mail(from = from,

             to = to,

             cc = cc,

             subject = subject,

             body = msg,

             smtp = list(host.name = "smtp.exmail.qq.com", port =465,user.name=from,passwd = "XXXXXXXX", ssl =TRUE),
                                                                                  #passwd = “ “這里輸入發(fā)送郵箱的密碼
             authenticate = TRUE,

             send = TRUE,

             attach.files = attach.files,

             encoding = "utf-8")

}

接下去通過下面的代碼調(diào)用上面定義好的函數(shù)。
例如我需要發(fā)送一封郵件給XXXXXX@163.com,郵件主題為Test,正文為“This is a test!",附件的本地地址為C:\Users\Administrator\Desktop\Test.csv,同時將該郵件抄送給YYYY@qq.com。則相應的代碼如下:

result <- "Test.csv"
receiptant <- c('XXXXXX@163.com')
message <- c("This is a test!")
mysendmail(wd = "C:/Users/Administrator/Desktop", 
           subject = "Test", msg = message, to = receipant, cc = c('YYYY@qq.com'), files = result)

如果代碼運行報錯,先查看一下郵箱地址有沒有寫錯。

三、自動運行R程序

有時候,我們需要程序每天定時運行處理數(shù)據(jù)并將結果發(fā)送到郵箱。
通過打開“控制面板”——“管理工具”——“任務計劃程序”——“創(chuàng)建基本任務”實現(xiàn)這一目的。
按照向?qū)崾镜牟襟E進行操作,如果希望每天定時發(fā)送郵件,則在觸發(fā)器這一步中選擇“每天”;如果希望每周特定時間(如周一到周五晚上21:00運行R腳本)則選擇“每周”。
注意在操作這一步時應選擇“啟動程序(T)”,在“程序或腳本”一欄中輸入Rscript.exe的地址(如C:\R\R-3.2.5\bin\x64\Rscript.exe),在“添加參數(shù)(可選)”中填入要運行的R腳本地址(如C:\Users\Administrator\Desktop\Rtest.R)。
或者簡單粗暴地直接在“程序或腳本”一欄中填入Rscript和R腳本兩者的地址(如C:\R\R-3.2.5\bin\x64\Rscript.exe C:\Users\Administrator\Desktop\Rtest.R),在創(chuàng)建完成時電腦會直接將R腳本地址轉移到“可選參數(shù)”欄中。


圖片.啟動程序

如果上述R軟件自動發(fā)送郵件的步驟還有哪里表述不清楚的,歡迎和我交流!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容