この記事では、ワードプレス管理画面から一括でメール送信できるプラグインをご紹介いたします。
- 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」や「お問い合わせページ」でお気軽にお問い合わせください。