mailis利用ガイド

【稼働サーバー条件】

  • php 7.4以上
  • DB mysql5.7以上、もしくはMariaDB 10.2以上
  • cronの利用が可能

【稼働確認レンタルサーバー】

Xserver レンタルサーバー

なお、レンタルサーバーなどは一日のメール配信数などの条件なども確認して利用してください。

(「一時間あたりの最大配信数」「配信間隔設定」などの配信設定機能などはあります)


購入とライセンス取得

販売ページより購入し、その後、ライセンスを取得してください。

(ライセンスの取得方法は、販売ページに記載しています)

なお、ライセンス取得時に、利用するドメインを登録してください。


ファイルのアップロード

購入後に取得したZIPファイルを解凍してください。解凍後の「mailis」というフォルダを ご自分のサーバーに以下のようになるようにアップロードしてください。

https://インストールしたドメイン/mailis/

(間に別のフォルダなどが入っても構いません)

インストール時のファイル構成

インストール時のファイル構成

インストール

その後は、「インストール」、「Cronの設置」に進んでください。

インストールページ

https://インストールしたドメイン/mailis/install/installer.php

事前に専用のDBを作成し、そのDBに権限があるDBユーザー名とDBパスワードを取得しておくこと。

また、ホスト名はWEBページと同一サーバーの場合は、「localhost」になることが多いが、 別サーバーの場合は、そのホスト名も取得しておいてください。

DBは、mysqlの5.7以上もしくはMariaDB10.2以上のDBを用意してください。

インストール画面 STEP1)

インストール画面 step1

上記のデータを順に記入してください。

  • データベースホスト
  • データベース名(事前に作成してください)
  • データベースユーザー(事前に作成してください)
  • データベースパスワード(事前に作成してください)
  • ライセンスキー(事前に取得してください)

ライセンスキーは、以下のサイトから取得して、ファイルなどに保存しておいてください。

https://i-say.net/mailis/license/

なお、取得したライセンスキーは、取得時に申請したドメインのサイトのみで利用できます。

ドメインが異なるサイトでは使えません。

ライセンスキーもフォームに入力します。

「次のステップへ」ボタンを押します。

以下の場合はエラーメッセージが表示され、step1のままになり、step2には進むことはできません。

  • DB接続情報が違う(実際に接続を行い確認しています)
  • ライセンスキーが違う(ライセンスキー自体が違う場合や、このドメインで申請したライセンスキーでない場合)

(注)いったん認証されたライセンスキーでも、ドメインを移動した場合などはそのライセンスキーでは、サービスは利用できません。ドメインを変更する場合は、ツールを再購入後に、新らしいライセンスを取得してください。

インストール画面 STEP2)

インストール画面 step1

管理者ログインIDには、"admin"など好きな管理用のIDを英数字で記入してください。

ログイン時に使います。後からは変更できません。

管理者メールアドレスには、ご自身のメールアドレスをお使いください。

後から変更もできます。ログインパスワードのリセットメールなどで使われます。

管理者パスワードには、ログインのパスワードを英数文字で記入してください。

推測されにくいものにしてください。後からも変更できます。

「インストール完了」ボタンを押してください。

DBにテーブルが作成され、初期ファイルなどが作成されます。

その後、ログインして、ダッシュボードに移動します。

https://インストールしたドメイン/mailis/admin_login.php

インストール画面 step1

インストール完了後は、installフォルダもしくはinstaller.phpはサーバーからは削除しておくことをお勧めします(ローカルには残しておいても構いません。再インストール時に利用します)


Cronの設定

次に「cronの設定」が必要になります。

【Cronの設定について】

cronは4つあります。

(予約メールを利用する場合)

cron/send_normal_emails.php をcron設定します。

これは予約メールの配信を行います。

推奨時間は毎1分から10分です。

1分ですと、予約時間に対して1分程度の誤差で配信開始します。

10分ですと、誤差は最大10分になります。

サーバーの利用条件などにも配慮して決めてください。

レンタルサーバーなどでは、1分のcronは禁止している場合もあります。

短いほど、サーバーの負荷は高くなる傾向があります。

なお、「設定」ページでの「メール送信設定」により、各メールの配信時間は管理されます。

(ステップメールを利用する場合)

cron/schedule_daily_mails.php

毎日の午前0時などに設定してください。

これは、その日のステップメールの配信キューを生成します。

cron/send_emails.php

推奨時間は毎1分から10分です。(その他の説明は予約メールのcronと同じです)

これは、ステップメールの配信を行います。

(外部DBやWordpressの会員データの自動インポートを利用する場合)

cron/integration_auto_import.php

毎1時間で設定してください。

自動インポート処理をします。

「外部DB連携」を作成した後の時間設定で自動インポートします。

これらのcronを

phpのpath cronファイルの絶対path

で登録します。

設定の具体的な方法はレンタルサーバーやサーバーごとに少し違いますので、

「レンタルサーバーサービス名 cron設定」などで検索して調べて、設定してください。

例「Xserver cron設定」

とくに、「phpのpath」や「cronファイルの絶対path」はサーバーごとに異なります。

以下はXserverでのあるサーバーの例です。

/usr/bin/php7.4 /home/サーバーアカウント名/ドメイン名/public_html/mailis/cron/send_normal_emails.php

「サーバーアカウント名」と「ドメイン名」はユーザーのデータを入れます。

cron設定

cronの設定は、サーバーごとに異なります。(これはXserverの例です)


【ダッシュボード】

ダッシュボードは、ツールの管理画面です。

ツールの設定や、メールの配信予定、メールの配信状況などを確認できます。

ダッシュボードのページは、以下のURLです。

https://インストールしたドメイン/mailis/admin/home.php

ダッシュボードでは、以下の情報が一目で確認できます:

  • ナビゲーションバー:画面上部に「予約メール」「ステップメール」「絞り込み条件」「読者管理」「レポート」「外部DB連携」「設定」などの主要機能へのリンクがあります
  • 送信キュー:本日の配信予定数(予約メール、ステップメール)
  • 読者数:現在の総読者数と今月の増加数
  • 送信サーバー:設定されているSMTPサーバーの情報
  • 予約メール:通常の予約メール配信の管理
  • ステップメール:自動ステップメールの管理
  • 絞り込み条件:読者の絞り込み条件の設定
  • レポート:配信結果の分析
ダッシュボード

【テスト配信】

インストール後にテスト配信するために以下の手順を推奨します。

「読者管理」ページに行き、「新規読者登録」ボタンをクリックして、自分のメールアドレス(受信を確認できるもの)を登録します。

「絞り込み条件」ページに行き、「絞り込み条件の新規作成」ボタンを押して、

  • 「フィルター名」に「自分のみ」もしくは上記のメールアドレスを入れます。
  • 説明は任意です
  • 「絞り込み条件」の条件を追加」ボタンをクリックして、「項目を選択」で「メールアドレス」を選択し、
  • 真ん中の条件が「と等しい」になっているままにして、「検索値を入力」の項目に自分のメールアドレスを入力します。

「プレビュー」を押して、「Where句」に文字列が表示されます。

次に「受信者リストの表示」ボタンを押して、自分のメールアドレスの読者データが表示されることを確認してから

「保存」ボタンを押します。

絞り込み条件

「予約メール」のページに行き、「新しい予約メールの作成」に行きます。

  • 「件名」「配信予定日時」を適当に決めて設定します。
  • 「配信予定日時」は、テスト配信の場合、現在よりも10分後くらいを推奨します。
  • 「配信の絞り込み条件の設定」でドロップダウンリストから、先程作成した絞り込み条件のフィルター名を選択します。
  • (これでテスト配信先が決まります)
予約メールの作成

「本文」はここではテスト配信なので適当に書いてください。

%%name%% さん、こんにちは。

「送信者」「送信メールアドレス」を設定して、「予約ボタン」を押します。

予約リストが表示されます。


ダッシュボードに行くと、キューの部分の数が表示され、クリックすると

配信予定のキューリストが見ることができます。

cron設定が正しくされていれば、時間になると配信されます。

上記で、テスト配信ができます。送信先のメールアドレスに、テストメールが届くことを確認してください。

配信されていない場合の確認ポイント
  • cronの設定が正しいか確認してください。
    サーバーのエラーログなどでエラーが出ていないか確認してください。
  • 予約メールのリストにデータが表示されているか確認してください。表示されている場合は、配信済みマークの数字が0から増えているか確認してください。
    リストになにも表示されていない場合は、お問い合わせください。
  • 送信先のメールが正しいか確認してください。
    テスト配信の場合は、自分のメールアドレスを設定し、そのメールアドレスが正しいか確認してください。
  • エラー表示がないか確認してください。
    状況とエラーの内容をそえて、お問い合わせください。

各種の設定や機能について

ここからは、各種の設定や機能について説明します。

設定

https://インストールしたドメイン/mailis/admin/settings.php

送信者アドレス

デフォルトのメールの送信者アドレスを設定できます。

予約メールやステップメールでは、個別に送信者アドレスを設定できます。

送信者アドレスは、利用サーバーのドメインと同じドメインのアドレスを推奨します。

他のドメインを使いますと、迷惑メールに入る場合が多くなります。

例) https://mydomainxxx.com/ に設置した場合は、sample@mydomainxxx.com のように

ドメイン部分が同一になるメールアドレスということです。

バウンスメールを受信するアドレス

メール送信先のアドレスが存在しない、一時的に利用できないなどの場合、相手の受信サーバーから 受信できない旨のバウンスメールが届きます。これを受信するメールアドレスを指定することができます。

指定がない場合は、送信元のメールアドレスに届きます。

このアドレスをかならず作成してから、設定してください。もし、存在しないメールアドレスや 受信できないメールアドレスを設定すると、バウンスメールとのループが発生する可能性があり、 発生した場合は、サーバーの信用性を損ない、メールが届きにくくなる可能性があります。

なお、ツール内でのバウンスメールの解析や削除機能はありません。(今後追加する可能性はあります)

よくわからない場は、なにも設定しないでよいです。

Gmail SMTP設定

利用サーバーの送信サーバー(SMTP)を使わずに、GmailのSMTPからの送信もできます。

利用する場合は、「GmailのSMTPを使用する」をオンにしてください。

ご自身のGmailのメールアドレスと、そのアカウントで取得したアプリパスワードを設定します。

アプリパスワードは、googleアカウントのパスワードではありません。

アプリパスワードの取得は以下から行ってください。

googleアプリパスワードへのリンクがある説明ページ

アプリパスワードの取得URL(認証が必要です)

アプリ名に「mailis」と記入し、アプリパスワードを取得して、ファイルなどに保存しておいてください。

gmailのメールアドレスとアプリパスワードを記入します。

これが正しくない場合は、利用サーバーのSMTPからの配信となります。

メール送信設定

これは利用のサーバー、レンタルサーバーなどの利用条件どにあわせて設定してください。

この設定は、以下の点などを考えてご自身で判断して、決めてください。

  • サーバーの利用条件
  • 配信する読者数と時間帯、終了予定時間
  • 受信のアドレスにgmailやyahooメールが多い場合は、ゆっくり配信した方が迷惑に入りにくい

上記を変更した場合は、「上記の設定を保存」ボタンを押します。

管理者設定

管理者の登録データを変更する場合に利用してください。

【読者管理】

読者(受信者データ)を理する

https://インストールしたドメイン/mailis/admin/user_list.php

読者リストを入れる方法

読者リストを入れる方法は4つあります。

1) 新規読者登録

「新規読者登録」(「検索」部分の下にあります)ボタンをクリックします。前面にフォームが表示されます。

2) CSVインポート

「CSVインポート」ボタンを押して進んでください。

3) フォームを設置して、登録してもらう

「フォームデザインジェネレーター」ボタンを押して進んでください。

4) 外部DBやWordPressの会員データから登録する

メニューの「外部DB連携」をクリックして進んでください。

進んでいただいた後の説明は、また下の方にありますので、お読みください。


【絞り込み条件】

登録された読者データを絞り込む方法を登録できます。

予約メールやステップメールで受信者を絞り込む時に指定して使います。

https://インストールしたドメイン/mailis/admin/filter_list.php

絞り込み条件の作成手順

「絞り込み条件の新規登録」ボタンを押します。

https://インストールしたドメイン/mailis/admin/filter_edit.php

1) フィルター基本情報の記入

これは後から絞り込み条件(フィルター)を識別するための情報です。

例)

  • 有料会員
  • ステップメールAの送信者
  • テスト送信用({自分のメールアドレスを記入})
2) 絞り込み条件の設定

「絞り込み条件」にて、「条件を追加」ボタンをクリックします。

ここで、条件を設定してから、下の「プレビュー」ボタンを押します。

条件のフレーズ文字が表示されます。(SQLのWhere句にあたるフレーズです)

さらにその下に出てきた「受信者の表示」ボタンで、実際の読者リストから この条件で絞り込んだ場合のデータのみが表示されます。

3) 保存

この条件でよければ、「保存」ボタンを押します。


【通常のメール配信をしたい時】

「予約メール」をクリックして、以下のページに行きます。

https://インストールしたドメイン/mailis/admin/normalmail_list.php

まずは、使い方を慣れていただくために、自分宛てに何度かテスト送信されることを強くお勧めします。

メール作成手順

新規にメール配信をしたい時は、「新しい予約メール作成」ボタンを押します。

基本設定

「メールの件名」、「配信予定日時」、「配信の絞り込み条件の設定」などを設定します。

  • 即時配信したい場合は、「配信予定日時」を設定せずに進んでください。
  • 受信者を絞り込みたい場合は、事前に「絞り込み条件」でフィルターを作成しておき、それを選択してください。
メール内容

ここにメール本文を記入します。

ブログのようなエディタになっています。

このエリアにクリックすると、「+」マークから入力できる要素が表示されます。

  • 見出し
  • 段落
  • 画像
  • リスト
  • 引用
  • 水平線

メールはHTMLメールとして送信されます。

(HTMLメールが表示されない方には、テキストメールとして表示されます。)

出来ないこと
  • ここで直接HTMLのソースを書いても、HTMLとして解釈されません。
  • 色やフォントサイズなど細かい指定はできません。

「本文を見やすくシンプルに書け、HTMLメールとして送信できる」というコンセプトで 設計されております。

送信者設定
送信者名

送信者メールアドレスの部分、送信者として表示される内容です。

送信者メールアドレス

送信者メールアドレスをここで設定できます。

前回記入したメールアドレスがすでに表示されている場合がありますが、変更可能です。

送信者メールアドレスについては、読者の受信箱にはいるか、迷惑メールになってしまうかなどに 影響があります。これについては、また別の説明を御覧ください。

置換挿入文字の説明

「メールの件名」と「メール内容」には、読者データや日時に関する挿入記号が利用できます。

  • %%email%% - メールアドレスに置換されます
  • %%name%% - 名前に置換されます
  • %%start_date%% - ステップメールの開始日に置換されます
  • %%col_1%%%%col_10%% - 自由属性の1から10番の項目内容に置換されます
  • %%created_at%% - 登録日時に置換されます
  • %%today%% - 配信時当日の日付に置換されます
  • %%tomorrow%% - 配信時の明日の日付に置換されます
  • %%yesterday%% - 配信時の昨日の日付に置換されます

予約と確認

「予約」ボタンを押すと、配信予約がされます。

予約されると、「通常の予約メール 一覧」のリストに表示されます。

アイコンで、予約や送信完了がわかるようになっています。

(ページの再読み込みが必要です)

予約メールの操作

「操作」の部分から各ボタンで、編集、コピー、削除が可能です。

  • 編集はまだ配信されていないメール内を変更する時にお使いください。
  • コピーは、すでに配信されたメールをコピーして、新規に予約メールを作る時に利用すると便利です。
  • 削除は、配信前であれば、配信予約データ(配信キュー)も削除されます。

【ステップメール管理】

https://インストールしたドメイン/mailis/admin/stepmail_list.php

ステップメールの基本概念

まずは、ステップメールの概念や仕組みを理解してください。

シリーズとステップメール

「シリーズ」と「ステップメール」という言葉の違いをここでは理解してください。

シリーズとは

一連のメール(ステップメール)のまとまりを示します。

例「ABCサービスの利用ガイド」

ステップメールとは

そのシリーズの中に収録しておく、配信予定を設定した各メールのことです。

  • 「利用ガイド 1日目 サービスの紹介」
  • 「利用ガイド 2日目 操作の仕方」
  • 「利用ガイド 3日目 データのインポートの仕方」

などように、配信予定を組んだ複数のメールになります。

シリーズの作成手順

1) シリーズの作成

まずは、「シリーズ」を作成してください。

「新しいシリーズ作成」ボタンをクリックし、シリーズの設定をします。

ここでは、送信者名や送信者メールアドレスも設定できます。

これはこのシリーズに収録される各ステップメールの送信者設定として使われます。

「保存」ボタンを押して、シリーズを作成します。

シリーズが作成されると、「ステップメール シリーズ一覧」に表示されます。

ステップメールの作成手順

1) ステップメールの追加

ここに「ステップメール」を登録していきます。

「シリーズ編集」ボタンをクリックします。

右上にある「新規ステップメール作成」ボタンを押します。

2) 基本設定

「メールの件名」、「配信予定日時」、「配信の絞り込み条件の設定」は予約メールと同じ設定内容です。

3) ステップメール特有の設定

ステップメール特有の設定項目として「配信開始日からの経過日数」と「送信時刻」を設定してください。

配信開始日からの経過日数

読者管理の読者データの「配信開始日」からの経過日数です。

数字で記入してください。

配信開始日を変更する場合は、「読者管理」ページから各読者データを編集することで可能です。

送信時刻

メールの送信時刻です。

送信時刻の説明は、別の「Cronの設定」にて詳しく説明しますので、そちらを見てください。

(到着時刻よりも少し前の時刻を設定してください。)


【外部DB連携】

https://インストールしたドメイン/mailis/admin/integration.php

これは、Wordpressの会員データや外部DBの会員データをこのサービスの読者データとしてインポートできる機能です。

自動更新インポートや適時の手動インポートなどもできます。

利用条件
Wordpressの場合
  • WordPressのインストール後のフォルダの中にこのサービスの「mailis」フォルダも入れてください。
  • WordPressのインストールすると「wp-content」「wp-admin」「wp-includes」などのフォルダが出来ています。それと同階層にこのサービスの「mailis」フォルダを入れてください。
  • 同階層に入れてもWordPress側には影響を与えません。
  • WordpressのDBの会員テーブルの「wp_users」のデータから、読者データをインポートするだけです。
外部DBの場合
  • このサーバーから、DB接続できるDBに限ります。
  • 通常の、ホスト名、DB名、DBユーザー名、DBユーザーパスワードで接続できるDBということです。

あとは、ナビゲーションの通りにお進みください。

なお、自動インポートはCron設定が必要となりますので、「Cron設定」の説明もお読みください。

【フォームデザインジェネレーター】

https://インストールしたドメイン/mailis/admin/form_generator.php

読者登録、解除用のフォームをいろいろなデザインパターンから作成できます。

読者登録時に自動返信メールを送信したい場合

フォームのHTMLソースには以下のようなタグが入っています。

<input type="hidden" name="mail_template" value="welcome">
  • 自動返信メールを送信したくない場合は、この部分を削除して利用してください。
  • 自動返信メールを送信したい場合は、このままにして、サーバーのmail_templateフォルダにあるwelcome.phpをエディタなどで編集してください。
  • 上記のタグの「welcome」の部分は、welcome.phpをメール送信データとして利用するという仕様です。
  • 件名や送信者情報、HTMLメール内容、テキストメール内容をカスタマイズ可能です。

また、この部分の「welcome」から「temp_1」などのように好きな文字列に変えて、 サーバーのmail_templateフォルダにtemp_1.phpを用意していただければ、その内容で配信されます。

mail_templateフォルダには、「welcome_sample.php」もありますので、これは編集せずに 参考スクリプトとして残してください。

スクリプトの内容は、内容を見ていただけば、それほど難しくはありません。

読者の登録や削除については、自由項目への登録やその他制限設定や、APIの利用、imgタグなどでの処理なども 可能です。詳しくは「外部からの読者の登録、削除の機能」を読んでください。

【セキュリティ設定】

これらは、mailis/user_register_setting.phpを直接編集して設定してください。

以下のような細かい制限が可能です。海外からの登録を制限するなどに利用できます。

デフォルトではボットのみ制限しています。海外からの登録の制限は、ブラウザの言語設定などが有効です。

1. レート制限

過剰なリクエストを防ぐため、以下の制限が設定可能です:

  • 時間あたりの最大リクエスト数
  • 制限期間の設定
  • IPアドレスごとの制限

2. アクセス制御

以下の制限を必要に応じて設定できます:

  • 特定のドメインからのアクセスのみ許可
  • 特定のIPアドレスからのアクセスのみ許可
  • ボットアクセスのブロック
  • 特定のブラウザ言語設定の制限

既存のお問い合わせフォームの問い合わせデータを読者登録する場合

お問い合わせフォームを少し調整し、以下のようなJavascriptを入れるだけで自動的にmailisの読者データに登録できます。

HTMLフォーム

<form id="contactForm" method="post" action="アクション先URL">
  <label for="name">名前:</label>
  <input type="text" id="name" name="name" required>
  <label for="email">メールアドレス:</label>
  <input type="email" id="email" name="email" required>
  <button type="submit">送信</button>
</form>

JavaScript

<script>
  // 設定部分: フォームおよびフィールドのID(ここはformのタグと一致している必要があります)
  const formId = 'contactForm';
  const nameFieldId = 'name';
  const emailFieldId = 'email';

  // API設定
  const apiUrl = 'https://your-domain.com/mailis/user_register.php';

  // フォーム送信の処理
  document.getElementById(formId).addEventListener('submit', async function (event) {
    event.preventDefault(); // デフォルトの送信をキャンセル

    // 入力データを取得
    const name = document.getElementById(nameFieldId).value;
    const email = document.getElementById(emailFieldId).value;

    // API送信用データ
    const apiData = {
      email: email,
      name: name,
      col_1: '会員ID' // 任意で追加してください。固定値。必要に応じて変更してください。
    };

    try {
      // APIにデータを送信
      const response = await fetch(`${apiUrl}?${new URLSearchParams(apiData).toString()}`, {
        method: 'GET'
      });

      if (!response.ok) {
        throw new Error('API送信中にエラーが発生しました。');
      }

      const responseData = await response.text();
      console.log('API送信成功:', responseData);

      // 元のフォームの送信を実行
      this.submit();
    } catch (error) {
      console.error('エラー:', error.message);
      alert('送信に失敗しました。もう一度お試しください。');
    }
  });
</script>
変更点および説明
  1. 設定部分をスクリプト冒頭に分離:
    • formId, nameFieldId, emailFieldId をスクリプト冒頭で定義しており、IDの変更が容易です。
  2. API仕様に合わせた処理:
    • fetch メソッドで GET リクエストを作成し、URLSearchParams を利用してクエリパラメータを生成しています。
  3. 固定値の項目:
    • col_1 は固定値として 会員ID を使用しています。必要に応じて変更してください。
  4. レスポンスの処理:
    • レスポンスを text として取得し、ログに出力します(仕様に応じて必要な処理を加えることも可能です)。
  5. 送信エラーのハンドリング:
    • エラーが発生した場合は、適切なメッセージを表示します。
この構成での編集

フォームやフィールドIDの変更があれば冒頭の設定部分だけを変更すれば良いので、コードのメンテナンスが容易です。

この内容でご理解できない場合は、エンジニアに依頼してください。

API連携

1. APIキーを使用した登録

外部システムから安全に登録するための方法です。

$api_key = 'your_secret_key_1';
$url = 'https://your-domain.com/mailis/user_register.php';
$data = [
    'api_key' => $api_key,
    'email' => 'user@example.com',
    'name' => 'テスト太郎',
    'col_1' => '会員ID'
];

$response = file_get_contents($url . '?' . http_build_query($data));

2. APIを使用した登録解除

$api_key = 'your_secret_key_1';
$url = 'https://your-domain.com/mailis/user_register.php';
$data = [
    'api_key' => $api_key,
    'action' => 'unsubscribe',
    'email' => 'user@example.com'
];

// GETリクエストの場合
$response = file_get_contents($url . '?' . http_build_query($data));

3. JSONレスポンス

APIモードでの応答は JSON 形式で返されます:

{
    "status": "success",
    "message": "メールアドレス「user@example.com」が新規登録されました。"
}

サポート、問い合わせについて

  • 購入60日以内の個別のサポート関係の問い合わせの回答を無料で致します。
  • 60日を過ぎた個別サポートは有料となります。
  • それ以外は、ガイドページの情報から確認してください。
  • なお、インストール代行、機能追加・カスタマイズなどは別料金が必要です。

バージョンアップについて

バージョンアップなどの情報もガイドページにて掲載します。

バージョンアップは各ファイルをご自身でダウンロードしていただく方法になります。

著作権やスクリプトの改変や再配布、その他の利用規約