【PHPMailer】さくらインターネットのメールアドレスで送信する方法

こんにちは、ryohei(@ityryohei)です!

本記事では、PHPMailerというライブラリを使って、さくらインターネットで作成したメールアドレスでメールを送信する方法をご紹介しています。

PHPMailerでさくらのレンタルサーバで作成したメールアドレスを使いたいけど、どうすればいいのかな?

上記の疑問にお答えできればと思います。

では、解説していきます。

何はともあれPHPMailer

まずはPHPMailerを使用できる状態にしていきます。下記のいずれかの方法で本体を取得しましょう。

Composerで取得する

Composerでさくっとインストールする、という方は下記のコマンドをどうぞ!

composer require phpmailer/phpmailer

composer.jsonがない場合は下記で初期化してくださいね。

composer init

インストールが終わりましたら、PHPMailerを使用するファイルの先頭に下記を追記すれば準備完了です。

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

Composerは偉大ですね!

ダウンロードで取得する

とりあえずダウンロードで使ってみようかな、という方は下記のURLからどうぞ!

ダウンロードしたファイル一式をプロジェクトの配下に設置し、マニュアルでPHPMailerを呼び出せば準備完了です。

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

これでPHPMailerが使えるようになりました。続いてさくらのレンタルサーバで作成したメールアドレスでメールを送信してみましょう。

SMTP認証後にメールを送信する

こちらはSMTP認証を通してメールを送信する方法です。前項でPHPMailerを使用できるようにした後、下記を追記します。各値は環境に合わせて変更してくださいね!

$mail = new PHPMailer(true);

try {
//ホスト(さくらのレンタルサーバの初期ドメイン)
$host = 'xxx.sakura.ne.jp';
//メールアカウントの情報(さくらのレンタルサーバで作成したメールアカウント)
$user = 'info@xxx.co.jp';
$password = 'password';
//差出人
$from = 'info@xxx.co.jp';
$from_name = 'Info';
//宛先
$to = 'yamada_taro@xxx.co.jp';
$to_name = 'Taro Yamada';
//件名
$subject = 'メールの件名';
//本文
$body = 'メールの本文';

//諸々設定
//$mail->SMTPDebug = 2; //デバッグ用
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = $host;
$mail->Username = $user;
$mail->Password = $password;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->CharSet = "utf-8";
$mail->Encoding = "base64";
$mail->setFrom($from, $from_name);
$mail->addAddress($to, $to_name);
$mail->Subject = $subject;
$mail->Body = $body;

//メール送信
$mail->send();

} catch (Exception $e) {
echo '失敗: ', $mail->ErrorInfo;
}

これでさくらインターネットで作成したメールアドレスで、SMTP認証を通してメールを送信することができるようになりました。PHPMailerは本当に使いやすいライブラリですね!

SMTP認証せずにメールを送信する

こちらは番外編です。

メールフォームなどでメールアカウントを使用する場合、セキュリティの観点からSMTP認証を通してメールを送信する方法が推奨されています。ただ実際にWeb制作をしていると、わざわざ認証を通す必要はない、というクライアントもいますよね…。

そういった場合は下記のような最低限の記述で一応メールを送信することができます。

$mail = new PHPMailer(true);

try {
//ホスト(さくらのレンタルサーバの初期ドメインを指定)
$host = 'xxx.sakura.ne.jp';
//差出人(作成したメールアドレスを指定)
$from = 'info@xxx.co.jp';
$from_name = 'Info';
//宛先
$to = 'yamada_taro@xxx.co.jp';
$to_name = 'Taro Yamada';
//件名
$subject = 'メールの件名';
//本文
$body = 'メールの本文';

//諸々設定
$mail->Host = $host;
$mail->Port = 587;
$mail->CharSet = "utf-8";
$mail->Encoding = "base64";
$mail->setFrom($from, $from_name);
$mail->addAddress($to, $to_name);
$mail->Subject = $subject;
$mail->Body = $body;

//メール送信
$mail->send();

} catch (Exception $e) {
echo '失敗: ', $mail->ErrorInfo;
}

ただ、この方法だとSMTP認証が必須になった瞬間にメールが送信できなくなるので注意が必要です。メールフォームなどでメールアドレスを使用する場合、基本的にSMTP認証を通してメールを送信するようにしましょう!

最後に

PHPMailerは長いことお世話になっているライブラリで、今後もお世話になっていくだろうと思います。メールを送信するという利用なので一度設定してしまえば他の案件にも使うことができるという点も魅力ですよね。

PHPMailerでさくらインターネットで作成したメールアドレスの使用を検討されている方、ぜひ本記事を参考に構築していただければ幸いです。

以上、PHPMailerを使ってさくらインターネットで作成したメールアドレスでメールを送信する方法のご紹介でした!

おすすめの書籍

Adobe Creative Cloudを通常価格で購入していませんか?

Adobe Creative Cloud(Adobe CC)はAdobe社が提供するクリエイター向けのサービスです。WEB制作の幅を広げる「Photoshop・Illustrator・XD」Youtuberや動画クリエイターの編集作業に欠かせない「Premiere Pro・After Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。

コンプリートプランはAdobe CCの全20以上のアプリが使用できるプランです。多くのアプリが使用できるため定価で購入すると年間7万円以上するプランですが、デジタルハリウッドのAdobeマスター講座では「基礎動画教材+Adobe CC コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。定価より安価にAdobe Creative Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。

Adobeマスター講座はこちら