WordPressでオリジナルのメール送信機能をつくりたいとき、WordPressに元々あるメール送信機能を使ってできます。
中身をみるとPHPMailerを使っているので作り方はとてもかんたんです。
サンプルコードで見ていきましょう。
WordPressはPHPMailerを使っている
WordPressのメール送信機能はPHPMailerを使っています。PHPMailerはPHPのメール送信で多く使われているパッケージ。
本来はCompoerというPHPのパッケージ管理コマンドを使ってインストールしますが、WordPressにすでに入っているのでいりません。
WordPressのソースコードにひとつのファイルで収められています。
wp_includes/class-phpmailer.php
たったこれだけ。使い方もPHPMailerと同じです。すでに使ったことのある人にとってはありがたいですね?
サンプルコードを見てみましょう。
WordPressでメールを送信するサンプルコード
最初にサンプルコードの全文です。
メール送信
<?php
/**
* Create HTML Body
*/
function my_mail_body() {
ob_start();
?>
<html>
<body>
<p>Sample Comment</p>
</body>
</html>
<?php
return ob_get_clean();
}
/**
* Send Mail Original
*/
function my_send_mail() {
if ( ! class_exists( 'PHPMailer' ) ) {
require_once ABSPATH . WPINC . '/class-phpmailer.php';
}
$mailer = new PHPMailer( true );
try {
// Language settings (Japanese support)
mb_internal_encoding('UTF-8');
$mailer->CharSet = 'UTF-8';
$mailer->Encoding = 'base64';
//Server settings
$mailer->SMTPDebug = 0; // Enable verbose debug output
$mailer->isSMTP(); // Set mailer to use SMTP
$mailer->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mailer->SMTPAuth = true; // Enable SMTP authentication
$mailer->Username = 'sample.from@gmail.com'; // SMTP username
$mailer->Password = 'sample-pass'; // SMTP password
$mailer->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mailer->Port = 587; // TCP port to connect to
//Recipients
$mailer->setFrom('sample.from@gmail.com', 'From Name');
$mailer->addAddress('sample.to@gmail.com', 'To Name'); // Add a recipient
// Content
$mailer->isHTML(true); // Set email format to HTML
$mailer->Subject = 'Sample';
$mailer->Body = my_mail_body();
$mailer->send();
} catch (Exception $e) {
}
}
// send mail
my_send_mail();
- WordPressのクラスをロード
- 日本語対応
- Gmailを使ってメール送信
- メール本文はHTML
- メール送信
これだけのことをほんの数十行でできます。
ほんとうはGmailのSMTPの設定情報などwp-config.phpの定数にした方がいい、my_send_mail()にパラメータをつけたほうがいいとかあります。
あとは自分の使い方にあったカスタマイズをしてください。