Rからメールが送信できるパッケージの紹介です。ファイルの添付はもちろん、本文に画像の埋め込みやRmdファイルの添付などが可能です。実行コマンドではGmailアカウント情報を利用してメールを送信する例を紹介します。なお、Gmailに限らずSMTPサーバー情報があれば他のメールサービスも利用可能です。
また、Googleアカウントでのアプリ パスワードの設定は「Google にログインする方法」より設定します。なお、「2 段階認証プロセス」がセキュリティ キーで設定されている場合は「アプリ パスワード」が表示されない場合があります。
その場合は下記URLから「アプリ パスワード」を設定してください。
・アプリ パスワードの設定 *Google アカウントへのログインが必要です。
https://myaccount.google.com/apppasswords
パッケージバージョンは0.9.1。実行コマンドはR version 4.4.1で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
install.packages("emayili")
usernameとpasswordを”.Renviron”ファイルに保存して使う
メール送信に必要な「Googleアカウント」と「アプリ パスワード」の情報は「server」コマンドに直接設定も可能です。しかし、コマンドに直接設定することはよくないといいますので、環境変数を保存する”.Renviron”ファイルを作成するとコード内に「Googleアカウント」と「アプリ パスワード」を保存する方法を紹介します。情報の読み出しは「Sys.getenv」コマンドを使用します。
###Documentsフォルダに".Renviron"ファイルを作成する#####
# まずは環境変数の確認
# Sys.getenv()
# ファイルパスを指定:Documentsフォルダ
doc_renviron <- path.expand("~/.Renviron")
# ".Renviron"ファイルが存在するか確認
if(!file.exists(doc_renviron))
# 存在しなければ作成
file.create(doc_renviron)
# ".Renviron"ファイルに書き込み
write_Renviron <- file(doc_renviron, "w" )
### 注意:個人使用のパソコンで第三者の使用がないことを想定しています
# Googleアカウント名を設定
writeLines('GMAIL_USERNAME="Googleアカウント名@gmail.com"', write_Renviron)
# アプリパスワードを設定
writeLines('GMAIL_PASSWORD="アプリパスワード"', write_Renviron)
########
# ".Renviron"ファイルを閉じる
close(write_Renviron)
# 気になれば".Renviron"ファイル内容を確認
# RStudioで開くと修正,保存が楽です
file.edit(doc_renviron)
# Rをrestartして内容を反映
.rs.restartR()
# 最後に環境変数を確認
#Sys.getenv()
# 設定の呼び出し
# 設定したGoogleアカウント名,アプリパスワードが表示されるとOK
Sys.getenv("GMAIL_USERNAME")
Sys.getenv("GMAIL_PASSWORD")
########
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
# パッケージの読み込み
library("emayili")
# メールを送る準備,envelopeオブジェクト作成:envelopeコマンド
email <- envelope()
# from,to,ccなどを設定:from,to,cc,bccコマンド
email <- email %>%
from("XXXXXXXX@XXXXXX.XXXXX") %>%
to("YYYYYYYYY@YYYYYY.YYYYYY")
# メールタイトルを設定:subjectコマンド
email <- email %>%
subject("TEST:からだにいいもの")
# メール本文を設定:textコマンド
# glueパッケージ表記の{{XXXX}}で埋め込みも可能です
## テキストの例
text <- "karada-good!!"
# 使用例
email <- email %>%
text("これはテストです!!
{{text}}")
# 添付ファイルを設定:attachmentコマンド
# 自身で適当なファイルを設定してください
email <- email %>%
attachment(paste(as.character(tcltk::tkgetOpenFile(title = "ファイルを選択"),
sep = "", collapse ="")))
## Rmdファイルを本文に埋め込む:renderコマンド
# https://www.karada-good.net/analyticsr/r-228/のRmdファイル
# ファイルはこちらからhttps://www.karada-good.net/wp/wp-content/uploads/2022/02/markdownEX.rmd
email <- email %>%
render(paste(as.character(tcltk::tkgetOpenFile(title = "ファイルを選択"),
sep = "", collapse ="")),
include_css = "rmd")
# メールを送信:serverコマンド
# 例はGoogleで送信
smtp <- server(
host = "smtp.gmail.com",
port = 465,
username = Sys.getenv("GMAIL_USERNAME"),
password = Sys.getenv("GMAIL_PASSWORD")
)
# 送信
smtp(email, verbose = TRUE)
出力例
少しでも、あなたの解析が楽になりますように!!