Rで解析:簡単管理!これでアドレス流出を防げるかも?「mailR」パッケージの紹介


2022.02.20:Javaのインストールと動作確認

BCCではなくCCでメールを発信してしまう最悪のトラブル。よく、CCの設定欄がなくなればトラブルが起こらないのにと考えたことはありませんか。今回、紹介するRを利用したメールの発信方法ではCCの設定を無効にできるのでトラブルのリスクを減らせると思います。

紹介するコードはGmailを利用していますが、Gmail以外でもSMTPサーバーの設定がわかれば利用できます。

本パッケージは、Gmailで2段認証していても使用可能です。テキストメールだけではなくHTMLメールも送信できます。もちろん、ファイルの添付も可能です。

パッケージバージョンは0.8。実行コマンドはwindows 11のR version 4.1.2で確認しています。

Javaのインストール

パソコン環境によってはJavaのインストールが必要です。自身のOS環境(64bit/32bit)に合わせ、以下よりダウンロードしてください。

javaのダウンロード:https://www.java.com/ja/download/manual.jsp

なお、Javaのインストールが必要ないパッケージもあります。お好みに合わせて利用してはいかがでしょうか。

必要パッケージのインストール

下記、コマンドを実行してください。

install.packages("mailR")

Gmailで2段認証している場合のパスワードを取得

  1. Gmailにアクセスし、右上のアカウント名をクリックし表示されるダイアログのアカウントをクリックする。
  2. ログインに表示されている「アプリパスワード」をクリックする。
  3. 下部に表示される「端末を選択」「アプリを選択」でその他を選び適当な名前をつける。
  4. 設定が済むとパスワードが表示されます。テキストなどにペーストしてください。

メール送信設定のエクセルファイル

画像のような形式のエクセルファイルを想定しています。メールアドレスは宛先に入力してください。セルに一つのアドレスで、縦に入力していきます。

必要なパッケージの読み込み、メール送信設定のエクセルファイルの読み込み、送信元のアドレスを設定

詳しくはコメントを確認してください。

#必要パッケージの読み込み
library("mailR")
library("XLConnect")
library("tcltk")

###メール送信設定のエクセルファイルの読み込み#####
#エクセルファイルを指定
LoadData <- loadWorkbook(paste(as.character(tkgetOpenFile(title = "xlsxファイルを選択",
                                                          filetypes = '{"xlsxファイル" {".xlsx"}}',
                                                          initialfile = "*.xlsx")), sep = "", collapse =" "))
#sheetオプションで読み込むシートを設定します
SendData <- readWorksheet(LoadData, sheet = 1)
########

#送信元のアドレスを設定
SendFrom <- "メールアドレスを入力"
########

メール送信のコマンド紹介

BCC設定間違い防止のためにCCをコメントアウトしても良いかもしれません。
user.nameには"Gmainのユーザー名"、passwdには"Gmailのパスワード"を入力してください。Gmailで2段認証している場合は上部説明を参考にして、パスワードを取得してください。

テキストメールの送信

send.mail(from = SendFrom,
          to = SendData[, 1][!is.na(SendData[, 1])],
          cc = SendData[, 2][!is.na(SendData[, 2])],
          bcc = SendData[, 3][!is.na(SendData[, 3])],
          subject = SendData[, 4][!is.na(SendData[, 4])],
          body = SendData[, 5][!is.na(SendData[, 5])],
          encoding = "utf-8",
          smtp = list(host.name = "smtp.gmail.com", port = 465,
                      user.name = "Gmailのユーザー名を入力",
                      passwd = "Gmailのパスワードを入力", ssl = T),
          authenticate = TRUE,
          send = TRUE)

HTMLメールの送信

send.mail(from = SendFrom,
          to = SendData[, 1][!is.na(SendData[, 1])],
          cc = SendData[, 2][!is.na(SendData[, 2])],
          bcc = SendData[, 3][!is.na(SendData[, 3])],
          subject = SendData[, 4][!is.na(SendData[, 4])],
          body = paste(as.character(SendData[, 6][!is.na(SendData[, 6])]), sep = "", collapse =" "),
          html = TRUE,
          inline = TRUE,
          encoding = "utf-8",
          smtp = list(host.name = "smtp.gmail.com", port = 465,
                      user.name = "Gmailのユーザー名を入力",
                      passwd = "Gmailのパスワードを入力", ssl = T),
          authenticate = TRUE,
          send = TRUE)

少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク