0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPress外部で wp_mail() を利用する方法

Posted at

WordPress外部で wp_mail() を利用する方法

WordPress の便利なメール送信関数 wp_mail() を、WordPressのインストールディレクトリ外で利用する方法を紹介します。この手法を使うと、WordPressの設定やプラグイン(例: WP Mail SMTP)を引き継いだ形でメールを送信できます。

0. 今回なぜこのような形を検討する必要があったか

クライアント様は、WordPressのサイトとは別に、LPを作成しており、LPのページについては、WordPressを利用していなかった。そのLPの申し込みフォームのメールがgmail宛に送信できない事象が発生しており、それに対処するため実装しました。

1. 前提条件

  1. WordPressがインストールされていること。
  2. 外部スクリプトから wp_mail() を利用する環境が整っていること。
  3. SMTPプラグイン(例: WP Mail SMTP)を設定済みの場合、これらの設定も引き継がれます。
    *難しく書いてありますが、同じURL (example.com) でWordPressが正しく表示されていれば、いいのです。

2. 実装例

以下に、wp_mail() を外部スクリプトで利用する方法を示します。

ファイル構成

パターン1

/path/to/wordpress
├── wp-load.php (WordPressロード用)
└── mail-test.php (今回作成するスクリプト)

パターン2

/path/to/wordpress
└──wp-load.php (WordPressロード用)
/path/to/lp
└── mail-test.php (今回作成するスクリプト)

どちらもコードを実装するのは: mail-test.php

// WordPress の wp-load.php を読み込む
require_once('/path/to/wordpress/wp-load.php');

// マルチバイトメール設定(日本語対応)
mb_language('ja');
mb_internal_encoding('UTF-8');

// メール送信情報を設定
$to = 'recipient@example.com'; // 送信先メールアドレス
$subject = '外部スクリプトからのメール送信テスト';
$message = 'このメールは WordPress の wp_mail() を利用して送信されています。';

// ヘッダー設定
$domain = 'example.com'; // ドメイン名
$from = '〇〇歯科医院'; // 送信者名
$email = 'info@example.com'; // 送信元メールアドレス

$headers = [];
$headers[] = "From: {$from} <info@{$domain}>";
$headers[] = "Reply-To: {$from} <{$email}>";
$headers[] = "Sender: {$from}";
$headers[] = "Return-Path: info@{$domain}";

// メールを送信
if (wp_mail($to, $subject, $message, $headers)) {
    echo 'メールが正常に送信されました!';
} else {
    echo 'メール送信に失敗しました。';
}

3. 動作確認

上記コードをサーバー上に配置します。
ブラウザやターミナルからこのスクリプトを実行して、メールが送信されるか確認します。
例: https://example.com/mail-test.php をブラウザで開く。

4. 注意点

  1. wp-load.php のパス:
    WordPressの設置場所に合わせて require_once のパスを適切に変更してください。
  2. From アドレスの上書き:
    WP Mail SMTP などのプラグインを使用している場合、送信元アドレスが設定に従って上書きされることがあります。
  3. セキュリティ:
    このスクリプトは公開される場所に配置しないでください。不正利用を防ぐために、認証やアクセス制限を設けることをお勧めします。

5. まとめ

WordPress外部でも wp_mail() を利用することで、WordPressの便利なメール送信機能を活用できます。この方法は、WordPressの設定をそのまま利用できるため、外部スクリプトからも簡単にメール送信が可能です。

このスクリプトを活用して、メール通知やシステム連携を実現してみてください!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?