以前、TransmitMail を WordPress で使う場合の設置方法という記事を書いたけど、 TransmitMail や WordPress のバージョンが上がって、少し情報が古くなって、うまく動かない場合があるようなので、この記事を書いている時点のそれぞれの最新のバージョンで動作する方法を改めて書いてみたいと思います。

(というか、 WordPress 5.5 で TransmitMail がうまく動かなくなったので、修正した TransmitMail v2.6.0 を昨日リリースした。)

各種バージョン

  • WordPress: 5.5
  • TransmitMail: 2.6.0

ファイル構成

ファイル構成は以前の記事と同じです。

WordPress の設置ディレクトリ/
    └ wp-content/
        └ themes/
            └ theme_name/
                ├ page-contact.php
                └ contact/
                    ├ ※ここに TransmitMail のファイル一式を置く
                    ├ ※ index.php は不要なので削除する
                    ├ テンプレートファイル
                    ├ config/
                    ├ lib/
                    ├ log/
                    └ tmp/

contact ページを作る

(ここも以前の記事と同じです。)

スラッグはなんでもいいですが、ここでは contact というスラッグでページを作ることにします。本文は空にします。(本文を入れても構いません。その場合、本文を出力する記述などが必要になります。)

page-contact.php に TransmitMail を読み込む

(ここも以前の記事と同じです。)

上記で作った contact ページのテンプレートファイルが page-contact.php なので、このファイルに TransmitMail の読み込みなどを書いてきます。

HTML の構造にもよりますが、下記のようなコードを書きます。

<?php
require_once TEMPLATEPATH . '/contact/lib/TransmitMail.php';
$tm = new TransmitMail();
$tm->init(TEMPLATEPATH . '/contact/config/config.php');

get_header();
?>
<main>
    <?php $tm->run(); ?>
</main>
<?php get_footer();

設定ファイルは PHP ファイルを利用します。

config.php を編集する

(ここも以前の記事と同じです。)

config.php を下記の記述します。

<?php
// この辺りはいつもの TransmitMail の設定
$config['email'] = 'info@example.com';
$config['subject'] = '[株式会社テスト]お問い合わせ';
$config['auto_reply_subject'] = '[株式会社テスト]お問い合わせありがとうございます';
$config['auto_reply_name'] = '株式会社テスト';

// 以下が WordPress で TransmitMail を利用する場合の特有の設定
$config['tpl_input'] = TEMPLATEPATH . '/contact/input.html';
$config['tpl_confirm'] = TEMPLATEPATH . '/contact/confirm.html';
$config['tpl_finish'] = TEMPLATEPATH . '/contact/finish.html';
$config['tpl_error'] = TEMPLATEPATH . '/contact/error.html';
$config['mail_body'] = TEMPLATEPATH . '/contact/config/mail_body.txt';
$config['mail_auto_reply_body'] = TEMPLATEPATH . '/contact/config/mail_auto_reply_body.txt';
$config['log_dir'] = TEMPLATEPATH . '/contact/log/';
$config['tmp_dir'] = TEMPLATEPATH . '/contact/tmp/';

※2020年9月16日追記: v2.2 で変数名を変更していたのを忘れていて、古い変数名になっていたので、 新しい変数名に修正した。参照: https://github.com/dounokouno/TransmitMail/issues/26#issuecomment-493996030

TransmitMail のテンプレートファイルを編集する

(ここも以前の記事とほぼ同じです。)

最後に TransmitMail のテンプレートファイルを編集します。

ヘッダー、フッターなどは WordPress のテーマファイルに書いているので、 form 要素の周辺と TransmitMail に関連する部分だけを記述します。

v2.6.0 以前では、 TransmitMail に同梱していたサンプルのテンプレートファイルの form 要素に action 属性を記述していたのですが、 TransmitMail v2.6.0 では削除しました。( action 属性があることで説明がややこしくなるので。)

動作確認

http://localhost/contact/ などの URL で TransmitMail が動作することが確認できるかと思います。

以下は Twenty Twenty に TransmitMail を設置してみた場合のスクリーンショット画像です。

まとめ

以上、 TransmitMail v2.6.0 を WordPress 5.5 で利用する場合の設置方法のご紹介でした。

それでは、 Let’s enjoy WordPress 5.5 and TransmitMail 2.6.0!