BCCではなくCCでメールを発信してしまう最悪のトラブル。よく、CCの設定欄がなくなればトラブルが起こらないのにと考えたことはありませんか。今回、紹介するRを利用したメールの発信方法ではCCの設定を無効にできるのでトラブルのリスクを減らせると思います。
紹介するコードはGmailを利用していますが、Gmail以外でもSMTPサーバーの設定がわかれば利用できます。ぜひ、ネットを管理している部署と相談しメール発信トラブルによる顧客情報の流出を防いでください。
本パッケージは、Gmailで2段認証していても使用可能です。テキストメールだけではなくHTMLメールも送信できます。もちろん、ファイルの添付も可能です。ぜひ、マーケティングや企画部門の方は試してみてください。なお、バージョン0.4で確認しています。
必要パッケージのインストール
ReporteRsパッケージはgithubからインストールする方がバージョンが新しいです。
#パッケージのインストール #Githubからインストール if(!require("devtools")) { install.packages("devtools") library("devtools")} install_github("mailR", "rpremraj") #CRANからインストール install.packages("mailR", dep = T)
Gmailで2段認証している場合のパスワードを取得
- Gmailにアクセスし、右上のアカウント名をクリックし表示されるダイアログのアカウントをクリックする。
- ログインに表示されている「アプリパスワード」をクリックする。
- 下部に表示される「端末を選択」「アプリを選択」でその他を選び適当な名前をつける。
- 設定が済むとパスワードが表示されます。テキストなどにペーストしてください。
メール送信設定のエクセルファイル
画像のような形式のエクセルファイルを想定しています。メールアドレスは宛先に入力してください。セルに一つのアドレスで、縦に入力していきます。
必要なパッケージの読み込み、メール送信設定のエクセルファイルの読み込み、送信元のアドレスを設定
詳しくはコメントを確認してください。また、初回使用時にはgmailにセキュリティに関するメールが送付されます。確認しないと使用できません。
#必要パッケージの読み込み 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 = 587, 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 = 587, user.name = "Gmailのユーザー名を入力", passwd = "Gmailのパスワードを入力", ssl = T), authenticate = TRUE, send = TRUE)
少しでも、あなたのウェブや実験の解析が楽になりますように!!