【R】Rの解析結果をメールで送信する方法4選
スクリプトでバッチ処理的に解析する場合や時間のかかる解析は、解析結果をメールで送ってくれると便利なのに、と思うことが多々ありますよね。
Rからメールを送信するパッケージは数種類ありますが、ここでは「単純にメール送信ができればいい」方向けに4種類のメール送信用パッケージの紹介と、メールを送るまでの準備をまとめています。
メール送信の前準備
何よりも、メールを送るためのSMTPサーバが必要です。
Gmailに接続できて、自分のアカウントを使って送るだけならGmailを使うのが手っ取り早いです。(2段階認証を設定していれば)アプリパスワードを使っての接続になるため、まずはGoogleアカウントからアプリパスワードを作成してください。
色んな理由でGmailを使えない(使いたくない)場合、ご自身で利用できるSMTPサーバを用意してください。登録は必要ですが、個人で使う範囲なら無料で使えるSMTPリレーサービスを使えば簡単に用意できます。
パッケージ一覧
ここに紹介するパッケージ以外にもRでメールを送信できるものはありますが、Windows OnlyやAPIを利用するためのアプリ作成が必要になるものは載せていません。
シンプルに使えるパッケージ
emayili
とにかくシンプルに使えるパッケージです。SMTPサーバの設定も記述でき、コード内で全て完結できるので非ITエンジニアでも分かりやすく使えます。
解析結果の添付や、Rmarkdownの出力もレンダリングして送信できるため、単純に結果をメールで送りたい場合はこのパッケージで十分です。
*その分、パスワードもコード内に直接保存されるためセキュリティ面は注意が必要です。
sendmailR
こちらも、emayiliと同様にシンプルに使えます。ただし、認証が必要なSMTPサーバは使えないため認証無しで使えるSMTPサーバが必要になります。
XAMPPで簡単にSMTPリレーサーバの構築(作成予定)
便利?な機能が使えるパッケージ
mailR
*JAVAのインストールが必要です。
送信したい情報を記載したデータセットに沿って、繰り返してメールを送信することができます。もちろん、他のパッケージでも同じ事はできますがmailRを使うと繰り返して送る処理が簡単に記載できます。
blastula
解析結果を見やすくなるよう、装飾にこだわってメールを送りたい場合はblastulaが便利です。
blastulaパッケージを使用すると、RからHTMLメールを簡単に作成して送信できます。メッセージには3つのコンテンツ領域(本文、ヘッダー、フッター)を含めることができ、マークダウンテキスト、ブロックベースのコンポーネント、さらにはHTMLフラグメントを挿入できます。基盤となるHTML/CSSは、さまざまな電子メールクライアントおよびWebメールサービスで適切に表示されることを目的としています。結果のメールメッセージはレスポンシブなので、大型ディスプレイとモバイルデバイスの両方で見栄えがします。
https://github.com/rstudio/blastula
正直、私はそこまでレイアウトにこだわるメールを送らないためあまり使いこなせてはいませんが、ggplotで作ったグラフやテーブルを使って、Rmarkdownでは難しいレイアウトを作りたい場合は便利なパッケージだと思います。
解析者本人が使うと言うよりは、顧客に対して解析結果を送る場合は重宝しそうです。
最初に認証情報を作成する必要があるため、非対話的に使いたい(自動化)場合は注意してください。ですが、認証情報さえ作ってしまえば、後は自動化できます。
他のパッケージ
検証していないパッケージですが、メールを送信するパッケージは他にもあり、こちらのサイトでは色々と機能を紹介してくれています。
mailgunを使っている方は「IMmailgun」が便利かもしれません。また、GmailのAPI(アプリケーション)を作る必要はありますが「gmailr」はGmailの機能を使えるので、メールを使いこなす必要がある場合は便利だと思います。
結論
私の用途(定型処理をバッチで実行して、結果を送信)では複雑な操作は必要ないため、emayiliを使っています。
個人用のGmailは使いたくなく、SMTPサーバの準備が必要なためメール送信機能の導入をためらっていましたが、SMTPリレーサービスであっさり解決したのでとても便利になりました。
Rで簡単にメール送信できると、かなり便利になりますよ。
ディスカッション
コメント一覧
まだ、コメントがありません