WordPress オリジナルコードを使ってメールを送信する

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
wordpress image
イラストACの画像をもとに加工しています。

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()にパラメータをつけたほうがいいとかあります。

あとは自分の使い方にあったカスタマイズをしてください。

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!