MevvMail のドキュメント

メールを届け、そして届いたことを証明できるように。

MevvMail は wp_mail() の送信を引き受け、お客様が設定した接続経由で送り、失敗したものを再試行し、すべての試行をご自身のデータベース内のテーブルに記録します。このガイドでは、インストール、接続画面の各項目、チェーンをたどる順序、ログ、WooCommerce の注文ボックス、Pro の画面、そしてメールが届かないときに確認する点を説明します。

できること

WordPress はすべてのメールを、サーバー自身の mail() 関数に渡します。この関数は認証を行いません。メールボックスはそのメールを疑わしいものとして扱い、拒否されても誰にも知らされません。wp_mail() は false を返し、ページはそのまま進み、パスワードリセットや注文確認はただ消えます。

MevvMail はこの経路を置き換えます。お客様が設定した、認証済みの接続経由で送信し、どれかがメールを受け付けるまで接続の一覧を優先度順にたどり、失敗したものを再試行し、WooCommerce の注文の配信状況を注文画面の上に直接表示します。

こう使ってください
ストアが注文、アカウント、請求のメールを送っていて、「送信されたのか?」という問いに推測ではなく記録で答えられる必要がある場合です。
設定するまでは何も変えません
接続が一つも定義されていなければ、フィルターは送信をそのまま WordPress に返します。プラグインを有効化しても、動いているメール経路を黙って引き受けることはありません。
送信サービスではありません
MevvMail は配信を再販せず、独自の送信枠も持ちません。ご自身の SMTP サーバー、またはご自身のプロバイダーのアカウントをご用意いただき、プラグインはそれを使います。

動作要件: WordPress 6.0 以上、PHP 8.1 以上。WooCommerce は任意です — なくてもすべて同じように動き、注文ボックスがないだけです。

インストール

  1. 無料の MevvMail プラグインをインストールします。プラグイン → 新規追加 から zip をアップロードするか、mevvmail ディレクトリを /wp-content/plugins/ にコピーします。
  2. 有効化します。この時点では、まだ何も引き受けられていません。
  3. MevvMail → 接続 を開き、最初の接続を追加します。
  4. テストメールを送信 を押し、メールが届くことを確認します。
  5. 任意ですが推奨します: 予備として、優先度の低い二つ目の接続を追加します。
  6. Pro の画面が必要な場合にかぎり: MevvMail Pro を二つ目のプラグインとしてインストールし、MevvMail → ライセンス で MEVM ライセンスを有効化します。

Pro を入れているあいだも、無料プラグインは有効なままにしてください。配信、フェイルオーバー、ログは無料プラグインにあります。ですからライセンスが失効しても、ストアのメール送信が止まることはありません。

接続

接続とは、サイトから外へ出る経路の一つです。10 種類が用意されており、そのすべてが無料プラグインに入っています。出し惜しみされた機能はなく、当社が課す送信上限もありません。

SMTPPHP mail()BrevoSendGridMailgunPostmarkSparkPostElastic EmailSMTP2GOResend

画面上の項目

名前
その接続にお客様が付ける名札です。ログの「接続」列に表示されるものなので、夜中の 3 時に見てもすぐ分かる名前を付けてください。
プロバイダー
種類を選びます。フォームの残りはそれに合わせて変わります。SMTP はホスト、ポート、暗号化、認証情報を求め、API プロバイダーはキーを、Mailgun と SparkPost ではさらにリージョンを求めます。
優先度
数値です。チェーンは優先度の小さいほうからたどられるので、主となる接続に最も小さい数を、予備にはより大きい数を与えます。
差出人名と差出人アドレス
メールが誰の名前で出ていくかです。SPF、DKIM、DMARC のレコードが、送信に使うプロバイダーを指しているドメインのアドレスを使ってください。そうでなければ、問題なく配信されたメールでもメールボックスは疑い続けます。
この差出人をすべてのメールに強制する
既定では無効です。有効にすると、この接続はメールが持っていた差出人を上書きします。あるプラグインが、プロバイダーの許可しないアドレスで送っている場合には役立ちます。プラグインごとの差出人に実際に頼っている場合には害になります。
有効
無効な接続はチェーンで飛ばされますが、画面には残ります。設定を失わずに、プロバイダーを一つ休止させる方法です。

保存された秘密の値がフォームに書き戻されることはありません。パスワードと API キーの項目には「保存済み — そのままにする場合は空欄に」と表示されます。差し替えるときだけ値を入力してください。

信頼する前に試してください

テストメールを送信 は、その接続だけを使って実際のメールを送り、結果を他の送信と同じようにログに書きます。失敗した場合、ログにはプロバイダー自身の応答が残ります — 何が間違っているかを教えてくれるのは、ほとんどの場合その一文です。

チェーンと、失敗したときに起きること

WordPress がメールを生成すると、MevvMail は接続を優先度順にたどり、メールを受け付けた最初の接続で止まります。レート制限中、送信枠切れ、あるいは停止しているプロバイダーが失わせるのは、メールではなく 1 回の試行です。このたどり全体は、接続ごとではなく 1 件のログとして記録されます。1 通のメールが 3 件の別々の失敗のように読めてはいけないからです。

すべての接続が拒否すると、そのログは失敗として記録され、再試行の待ち行列に入ります。1 分後、5 分後、30 分後にあと 3 回試され、そこで止まります。存在しないアドレスが、40 回目の試行で存在し始めることはありません。

再試行は WP-Cron で予約されます。WP-Cron は、誰かがサイトを訪れたときにしか動きません。訪問の少ないサイトでは、再試行が予定された時刻より遅れることがあります。それが問題になる場合は、いつもの方法で本物のサーバー cron に切り替えてください — wp-config.phpDISABLE_WP_CRON と、crontab からの wp-cron.php の呼び出しです。そのために MevvMail 側で変更するものは何もありません。

役に立つチェーンとは

  • 別々の 2 社に置いた 2 つの接続は、1 社の不調から守ってくれます。同じ 1 社に置いた 2 つの接続は守ってくれません。
  • チェーンには SMTP 接続を 1 つ残してください。そうしないと、添付ファイルを持つメールの行き先がなくなります (下記参照)。
  • PHP の mail() は、最後の手段としては妥当ですが、最初の選択としては不適切です。このプラグインが置き換えるために存在している、認証のない経路そのものだからです。

メールのログ

すべての試行は、ご自身のデータベース内のテーブルに記録されます。メールに関するものが当社に送られることはありません — プラグインのどこにも、テレメトリーも解析もコンテンツの走査もありません。

記録される内容
日時、宛先、件名、状態、処理した接続、そのメールを生成したサイトの部分、プロバイダー自身の応答、試行回数。
絞り込み
状態 (送信済み、失敗、保留)、発生元、日付で絞り込めます。この 3 つを合わせれば、たいていサポートの調査はそれで足ります。
発生元
メールは、どのプラグインが生成したかを示すラベルを持つことができます — フォーム、リカバリーメール、WooCommerce の通知など。ラベルは専用の列に記録され、メールが出ていく前に取り除かれます。ですから、メールを受け取る人に届くことはありません。
再送
一覧にあるどのログも、そこから再送できます。チェーンの先頭から入り直すので、その後に直した接続があれば、それが使われます。
メール本文を保存する
既定では有効です。無効にすると、ログはヘッダーだけを保持します。そのログは内容を確認できますが、再送はできません — 失敗した送信が再試行の段階に入ることもありません。どちらの場合も、送るものが保存されていないからです。
ログの保存期間
7 日、30 日、90 日、または無期限。それより古いログは、定期的に削除されます。

ログには個人データが含まれることがあります — アドレス、件名、そして設定を有効のままにしていれば本文も。公開前に、保存期間の設定と本文の選択を、ストアの他の記録と同じように、ご自身の義務に照らして見直してください。

アンインストール

プラグインを削除しても、ログと設定はそのまま残ります。設定画面には、有効にするかどうかを選ぶ項目が一つだけあります — プラグインの削除時に、ログのテーブルとすべての設定も削除する — そして既定では無効です。「アンインストール」の破壊的な解釈が、うっかり選ばれてしまうことがあってはならないからです。

添付ファイル

バージョン 1.0.0 では、添付ファイルは SMTP 経由でのみ送られます。8 つの API プロバイダーは添付を送りません。これは不具合ではなく、意図した制限です。それらの API はどれもファイルを別々の形で求めており、中途半端にしか試していないエンコーダーを 8 つ出す価値はありませんでした。

  • ファイルを持つメールは、API の接続を必ず飛ばし、チェーンの中から SMTP の接続を探します。
  • SMTP 接続が設定されていれば、請求書、チケット、PDF は通常どおり送られます。
  • SMTP 接続が設定されていない場合、そうしたメールはファイルなしで配信されるのではなく、失敗としてログに記録されます — 請求書のない静かな配信は、目に見える失敗より悪いからです。

実務上の決まりは一行です。他に何を入れていても、チェーンには SMTP 接続を 1 つ残してください。

WooCommerce の注文

WooCommerce が有効なら、各注文画面に、その注文が生成したメールと、それぞれの配信状況を並べたボックスが追加されます。「お客様に確認メールは届いたのか?」という問いは、ログを検索するのではなく、注文の上で答えられます。

ログには、そのメールがどの WooCommerce メールだったかも記録されます。ですから 30 分後に起きる再試行も、自分が何を送っているかを分かっています — Pro ライセンスがあれば、どの振り分けルールとどの件名が当てはまるかも分かります。

MevvMail は、WooCommerce のないサイトでもまったく同じように動きます。注文ボックスがないだけです。

Pro ライセンスが加えるもの

ここまでのすべてが無料プラグインに入っています。10 種類の接続、フェイルオーバーチェーン、再試行の段階、ログ、再送、WooCommerce の注文ボックス。Pro は、配信の上に WooCommerce の深さを加える別のプラグインです。

WooCommerce メールデザイナー
ロゴ、基本色、背景色、フッターの文言、そしてメールの種類ごとの件名。保存したデザインのプレビューも付きます。デザインを適用するのは無料プラグインなので、ライセンスを切っても残ります。
開封トラッキング
ご自身のサイトが配信する、任意の 1×1 ピクセルです。ログの「開封」列に、タイムスタンプ 1 つとして記録されます。既定では無効です。IP アドレス、メールクライアント、リファラー、位置情報、端末、開封回数は集めず、開封率もどこにも表示しません。
失敗の通知
お客様が決めた回数だけ連続で失敗したあと、障害 1 件につきメールか webhook を 1 通送ります。通知はサーバー自身のメール経路から出ていきます — 壊れているのが接続そのものであっても届くようにです — そして、失敗したメールの宛先、件名、本文は一切運びません。
条件付きの振り分け
発生元のタグや WooCommerce のメール種別に対するルールが、ある接続をチェーンの先頭に移します。チェーンが狭められることはないので、フェイルオーバーは働き続け、遅れて実行される再試行でもルールは同じように一致します。

ライセンスは、MEVM で始まるキーを使って MevvMail → ライセンス で有効化します。失効すると、デザイナー、トラッキング、通知、振り分けは止まります。配信、フェイルオーバー、ログは動き続けます。それらはもともと、Pro が握っているものではないからです。

開封トラッキングは計測ではなく、手がかりです。画像を遮断するメールボックスや、画像をキャッシュするプロキシは、ピクセルを黙らせたり早く反応させたりします。だからこそ最初の開封だけを保存し、この製品はどこにも開封率を表示しません。

サーバーから出ていくもの

2 つあり、そのどちらもここに書かれています。

  1. お客様のメールが、設定したプロバイダーへ。差出人、宛先、件名、本文、Reply-To や独自ヘッダーがあればそれ、そしてプロバイダーがお客様を認証できるように、ご自身の API キー。MevvMail が付け足すものはありません — サイトのアドレスも、利用者のデータも、当社の識別子もありません — そして、その種類の接続を作るまで、どのプロバイダーにも何も送られません。
  2. 更新の確認。プラグインのスラッグと、インストール済みのバージョン番号という 2 つの値が、WordPress が自身の更新確認を実行し、かつキャッシュされた応答が 12 時間より古いときに https://mevvsoft.com/api/v1/license/free-update へ送られます。サイトのアドレスも、メールアドレスも、ライセンスキーも、プラグインの一覧も、利用統計もありません。応答には署名があり、署名のない応答は破棄されます。WordPress プラグインディレクトリで配布される版には、更新用のファイルがそもそも入っていません。

提供元がこのプラグインから受け取るものは、メールの内容も、宛先のアドレスも、ログの記録も、解析データもありません。ログはご自身のデータベース内のテーブルであり、どれだけ保存するか、本文をそもそも保存するかどうかは、お客様が決めます。

トラブルシューティング

ログは送信済みなのに、届いていない
「送信済み」は、接続がメールを受け付けたという意味であり、メールボックスが受信トレイに入れたという意味ではありません。まず迷惑メールを確認し、次に差出人アドレスが、SPF、DKIM、DMARC のレコードで送信に使うプロバイダーを許可しているドメインのものかを確認してください。この段階で消えるメールの多くは、配信ではなく認証の問題です。
最初の接続ですべて失敗する
そのログを開き、プロバイダー自身の応答を読んでください。試行と一緒に保存されています。ポートの間違い、暗号化の間違い、期限切れのキー、プロバイダーが許可しない差出人。ほとんどはこのどれかです。
添付ファイル付きのメールが失敗した
チェーンに SMTP 接続が入っているかを確認してください。なければ、ファイルを持つメールは意図的に失敗としてログに記録されます。
再試行がまったく動かない
原因は 2 つあります。WP-Cron は、誰かがサイトを訪れたときにしか動きません。ですから訪問の少ないサイトでは、再試行がアクセスを待ちます — または、本物のサーバー cron に切り替えてください。もう一つは「メール本文を保存する」です。無効になっていると再試行に使うものがなく、失敗したログは意図的にそのまま残されます。
再送ボタンを押しても何も起きない
そのログは本文なしで記録されているため、送るものがありません。再送する可能性のあるログのために、「メール本文を保存する」を有効に戻してください。
Pro の画面が表示されない
無料プラグインが有効か、Pro プラグインが有効か、ライセンスが有効化されているかを確認してください。3 つすべてが必要で、どれが満たされていないかはライセンス画面が教えてくれます。

当社にご連絡いただくときは、プラグインのバージョン、WordPress と PHP のバージョン、接続の種類、そしてログに残っているプロバイダーの応答の原文をお送りください。先に、お客様のアドレスとメール本文は取り除いてください。ほとんどの場合、その応答だけで十分です。