
この記事では、ワードプレス管理画面から一括でメール送信できるプラグインをご紹介いたします。
- step1MySQLデータベースにテーブルを作成
MySQLデータベースにメーリングリストのデータを登録するテーブルを作成します。
- step2メーリングリストの作成
メーリングリストをエクセルで入力して、ワードプレスのcsv登録プラグインを利用してMySQLデータベースに登録します。
- step3一括メール送信プラグインのインストール
一括メール送信プラグインをコピペで作成して、インストールします。
MySQLデータベースにテーブルを作成
一括メール送信プラグインは、データベースに登録したメーリングリストのデータを利用して、ワードプレス管理画面からメールを一括送信できるプログラムです。
ワードプレスは、オープンソースソフトウェアであるMySQLというデータベース管理システムを使用しています。このデータベースにメーリングリストを登録していきます。
データベースに登録するのは、「phpMyAdmin」というPHPで実装されたMySQLの管理ツールを使って登録できますが、今回はプラグインをインストールして有効化するだけでテーブルが作成できます。ですので、phpMyaAdminでテーブルが作成できている確認するだけです。
プログラムのコードは後述しますので、まずはテーブルを作成するために下記からプラグインをダウンロードしてください。
ワードプレスの管理画面でプラグインの新規追加>プラグインのアップロードでインストールして有効化してください。
一括メール送信プラグインを有効化すると、MySQLデータベースにメーリングリスト用のテーブルが新しく作成されますので、phpMyAdminで確認しましょう。「エックスサーバー」や「さくらのレンタルサーバ」でWordPressサイトを作成されている方は、レンタルサーバーにログインして利用できます。

ログインしたphpMyAdminの画面では、ワードプレスのデータベースが作成されていてデータを登録していくテーブルが複数あるかと思います。ここに新しく「ワードプレスの接頭辞」+「mail_list」のテーブルが作成されているのを確認してください。
メーリングリストの作成
テーブルを作成できた後は、下記のcsvファイルをダウンロードして、メーリングリストのデータをエクセルなどを利用して入力します。

「mail_list.csv」をエクセルで開くと、1行目にメーリングリスト用のテーブルに対応したカラム名が入力されています。typeは種別で、nameは名前、mail_adはメールアドレスです。2行目以降にデータを入力していき保存してください。
作成したcsvファイルは、「csv登録プラグイン」でアップロードします。
メーリングリスト用のテーブルをワードプレスに認識させる
データが登録できましたが、MySQLで新しくテーブルを作成した場合は、ワードプレスに認識させるために、ワードプレスがインストールされているサーバー上のwp-contentフォルダー直下に下記のファイルを作成してアップロードしてください。
<?php
require_once( ABSPATH . WPINC . '/wp-db.php' );
class my_wpdb extends wpdb {
var $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta',
'terms', 'term_taxonomy', 'term_relationships', 'termmeta', 'commentmeta' ,
'mail_list');
}
if ( ! isset($wpdb) ) {
$wpdb = new my_wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
}
?>6行目のmail_listがMySQLで作成した新しいテーブルです。それ以外は、元々読み込んでいるテーブルです。新しくテーブルを追加した場合は、このファイルの$tablesに配列で追記していけば反映されます。
一括メール送信プラグインの編集と再インストール
データの登録と新しいテーブルの認識ができましたので、いよいよプラグインの作成です。一括メール送信プラグインは2つのファイルで構成しています。コピペしてファイルを作成してください。
<?php
/**
* @package super_mail
* @version 1.0
*/
/*
Plugin Name: 一括メール
Plugin URI: https://jisaku-hp.jp/
Description:
Author: 廣本 隆史
Version: 1.0
Author URI: https://jisaku-hp.jp/
*/
global $wpdb;
$table = $wpdb->prefix.'mail_list';
//manshonテーブルが存在していなければ作成する
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
$sql = "
CREATE TABLE IF NOT EXISTS `$table` (
id int(10) unsigned AUTO_INCREMENT NOT NULL,
type varchar(255) NOT NULL,
name varchar(255) NOT NULL,
mail_ad varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
function original_page100() {
add_menu_page('一括メール', '一括メール', 1, 'original_page100', 'csv100', '' ,201);
}
add_action('admin_menu', 'original_page100');
function csv100() {include 'mail.php';}
?>「functions.php」の14行目から31行目のコードは、MySQLデータベースにメーリングリスト用のテーブルを作成するコードです。すでにテーブルがある場合は、上書きしたりはしません。
33行目から38行目のコードは、ワードプレス管理画面に「mail.php」を読み込んでいます。
<?php
$headers = "From:example@example.jp";
?>
<style>
textarea{display:block;}
</style>
<h2>一括メール送信</h2>
<form enctype="multipart/form-data" method="post">
<p>題名</p>
<input name="title" value="<?php echo get_option('super_title'); ?>">
<p>メール本文</p>
<textarea name="body" style="max-width:500px; width:90%; height:500px;"><?php echo get_option('super_mail'); ?></textarea>
<input type="submit" name="_update" value="更新">
<p>メール送信</p>
<select name="type" class="select">
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT distinct type FROM $wpdb->mail_list");
foreach ($results as $value) {
echo '<option value='.$value->type.'>'.$value->type.'</option>';
}
?>
</select>
<input type="submit" name="_send" value="送信">
<?php
if (isset($_POST['_update'])) {
$title = $_POST['title'];
$value = $_POST['body'];
update_option('super_title', $title);
update_option('super_mail', $value);
echo <<<EOF
<script>
location.href='
EOF;
echo $_SERVER['REQUEST_URI'];
echo <<<EOF
';
</script>
EOF;
}
if (isset($_POST['_send'])) {
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$type = $_POST['type'];
$title = get_option('super_title');
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM $wpdb->mail_list WHERE type = '$type'");
foreach ($results as $value) {
$mes = $value->name." 御中\r\n\r\n";
$mes .= get_option('super_mail')."\r\n\r\n";
mb_send_mail($value->mail_ad, $title, $mes, $headers);
}
}
?>
</form>mail.phpの2行目のコードは、メール送信者のアドレスです。From:以降を編集して下さい。
25行目から40行目のコードは、更新ボタンをクリックした時に題名と本文の内容をoptionsデータベーステーブルに登録または更新します。
41行目から53行目のコードは、送信ボタンをクリックすると、選択した種別のメーリングリストに題名と本文が一括でメール送信されます。
それでは、作成したプラグインをインストールしてみましょう。
プラグインのインストールファイルはzip形式になります。コピペで作成した「functions.php」と「mail.php」をフォルダ(フォルダ名称は任意です。)に入れて、フォルダーを右クリックで送る>圧縮(zip形式)フォルダーで圧縮してください。
ワードプレス管理画面>プラグインの新規追加でプラグインのアップロードをクリックしてください。圧縮したzipファイルを選択して、「今すぐインストール」でインストール開始します。
テーブル作成のために、先にインストールしているので、上書きインストールになります。
プラグインの使い方や、編集などでお困りの方は、お気軽に「LINE」や「お問い合わせページ」でお気軽にお問い合わせください。

