WordPress新規ユーザー作成の送信メールを自作プラグインでカスタマイズ

[対策](#対策)
[プラグインフォルダ作成](#プラグインフォルダ作成)
[プラグインphpファイル作成](#プラグインphpファイル作成)
[ダッシュボードで設定](#ダッシュボードで設定)
[カスタマイズ後のメール文面](#カスタマイズ後のメール文面)
[迷惑メール振分防止プラグイン](#迷惑メール振分防止プラグイン)
[テスト](#テスト)
[参考記事](#参考記事)

###wordpress新規ユーザー作成のメールが残念…

こんな感じ…

```:新規ユーザー宛て
件名：
【＜サイト名＞】 新規ユーザー登録

本文：
これはユーザー登録時に登録ユーザー宛に送信されます。
```

```:管理者宛て
件名：
【＜サイト名＞】 新規ユーザー登録

本文：
サイト「＜サイト名＞」の新規ユーザー登録:

ユーザー名: ＜WPユーザー名＞

メール: ＜ユーザーメールアドレスの＞
```

サイト運営側がアカウントを作成する場合、お客さんが受け取っても「なんじゃらほい？」になってしまいそう…

また、送信元がWordPressであり、PHPで発信しているためか、迷惑メールに振り分けられてしまう…

#対策
１）新規ユーザー宛てメールの内容をカスタマイズ
お客様へふさわしい文面
ログインURLを案内
初期パスワードを含めたログイン方法を案内

２）管理者宛てメールの内容をカスタマイズ
サイト表示名を追加

３）迷惑メールに振り分けられないカスタマイズ


#プラグインフォルダ作成

```
# mkdir /var/www/html/example.com/wp-content/plugins/message-to-mew-customer
```

#プラグインphpファイル作成

```:#&nbsp;vim/&nbsp;var/www/html/example.com/wp-content/plugins/message-to-mew-customer/message-to-mew-customer.php
<?php
/*
Plugin Name: Custom New User Mail
Description: 新規ユーザー登録時に送信されるメールの内容を変更
*/
if(!function_exists('wp_new_user_notification')) {

	function wp_new_user_notification($user_id, $deprecated = null, $notify = '') {
		if ( $deprecated !== null ) {
			_deprecated_argument( __FUNCTION__, '4.3.1' );
		}

		global $wpdb, $wp_hasher;
		$user = get_userdata( $user_id );
	 
		//管理者宛のメール

		//件名
		$subject = get_option('blogname') . '｜新規アカウント作成の通知';
		//本文

		$message  = '＜サイト名＞サイトの管理者へ' . "\r\n\r\n";
        $message .= $user->display_name . 'のアカウントが作成されました。' . "\r\n\r\n";//サイト表示名を取得
		$message .= '氏名：' . $user->display_name . "\r\n";//氏名を取得::
        $message .= 'ユーザー名：' . $user->user_login . "\r\n";//ユーザー名を取得
		$message .= 'メールアドレス：' . $user->user_email . "\r\n";//ユーザーメールアドレスを取得
        $message .= '初期パスワード：＜初期パスワード＞' . "\r\n\r\n";
        $message .= '＜会社名＞' . "\r\n";
        $message .= '＜住所＞' . "\r\n";
        $message .= 'TEL：＜電話番号＞' . "\r\n";
        $message .= '＜運営元＞' . "\r\n";

		@wp_mail(get_option('admin_email'), $subject, $message);

		 
		//登録ユーザー宛のメール

		//件名
		$subject = get_option('blogname') . '｜新規アカウント作成の通知';
		//本文

        $message  = 'こんにちは、' . $user->display_name . "\r\n\r\n";//サイト表示名を取得
		$message .= '＜サイト名＞サイトにあなたのアカウントが作成されました。' . "\r\n\r\n";
        $message .= 'こちらからログインできます。' . "\r\n";
		$message .= 'サイトURL：＜サイトURL＞/' . "\r\n\r\n";
        $message .= 'ユーザー名：' . $user->user_login . "\r\n";//ユーザー名を取得
		$message .= 'メールアドレス：' . $user->user_email . "\r\n";//ユーザーメールアドレスを取得
        $message .= '初期パスワード：＜初期パスワード＞' . "\r\n\r\n";
        $message .= '初期パスワードでログイン後、必ずパスワードを変更し、ご自身で管理なさってください。' . "\r\n\r\n";
        $message .= '＜会社名＞' . "\r\n";
        $message .= '＜住所＞' . "\r\n";
        $message .= 'TEL：＜電話番号＞' . "\r\n";
        $message .= '＜運営元＞' . "\r\n";

		@wp_mail($user->user_email, $subject, $message);
	}
}
?>
```

#ダッシュボードで設定
WordPressダッシュボード　＞　プラグインに`message-to-mew-customer`が表示されるので、`有効`にする



#カスタマイズ後のメール文面

新規ユーザーへのメール

```:新規ユーザー宛て
こんにちは、＜サイト表示名＞さん

＜サイト名＞サイトにあなたのアカウントが作成されました。

こちらからログインできます。
サイトURL：＜サイトURL＞

ユーザー名：＜ユーザー名＞
メールアドレス：＜ユーザーメールアドレス＞
初期パスワード：＜初期パスワード＞

初期パスワードでログイン後、必ずパスワードを変更し、ご自身で管理なさってください。

＜会社名＞
＜住所＞
TEL：＜電話番号＞
＜運営元＞
```

サイト管理者へのメール

```:管理者宛て
＜サイト名＞サイトの管理者へ

＜サイト表示名＞さんのアカウントが作成されました。

氏名：＜サイト表示名＞
ユーザー名：＜ユーザー名＞
メールアドレス：＜ユーザーメールアドレス＞
初期パスワード：＜初期パスワード＞

＜会社名＞
＜住所＞
TEL：＜電話番号＞
＜運営元＞
```



#迷惑メール振分防止プラグイン
`送信元：WordPress`
`送信元メールアドレス：wordpress@＜サイトドメイン＞`
これが理由で迷惑メールに振り分けられてしまう可能性が高い

プラグイン「WP Mail SMTP」で対策

```:設定
送信元：site@＜サイトドメイン＞
送信元メールアドレス：＜サイト名＞
「送信元アドレスを返信先 (return-path) として設定」にチェックを入れる
```


#テスト

WordPress新規ユーザーを作成した時の動作確認
→新規ユーザーにメールが飛ぶか
→管理者にメールが飛ぶか
→迷惑メールに振り分けられないか

#今後の課題



サイト名やサイトURL もPHPで取得できるといい

***
#参考記事
`https://cree.fun/2832`
`https://techmemo.biz/wordpress/get_userdata/`
`https://bryog.com/how-to-use-wp-mail-smtp/`