WordPressでも使ってる!新しくなったPHPMailerを使ってみよう

のえる のえる
2019.09.13

プログラムを作っている中でメールを送信する機能がありますが、手で書くと結構煩雑になりませんか?
サーバーやポートの設定、ログイン認証、添付ファイルの追加・・・・。

 

そんな考えるのも面倒なメール送信を一気に楽にしてくれるライブラリ PHPMailer をご紹介します。

 

なお PHPMailer はバージョン5が非推奨になっており、代わりにバージョン6を推奨しています。
この記事では記載時点で最新の v6.0.7 でご紹介します。

 

◆PHPMailer に関するリンク

環境

実行環境はこんな感じです。

 

CentOS 7
PHP Version 7.1.11
Composer

 

※Composerのインストールおよび使い方の説明は割愛します
※Linuxの使い方の説明は割愛します

実装方法

インストール

まずは composer で PHPMailer をインストールします

 

続いて PHPMailer を使用できるようにします

 

これで PHPMailer を使用する準備ができました。

基本的なメールの送信をする

シンプルですが、基本的なメールの送信をするには下記のような感じです。

とても一般的な内容ばかりですね。
送信元と送信先のアドレスの第二引数は名前になりますが、省略することも可能です。

送信先を増やす

1通のメールで送信先を増やす場合、下記のような感じになります。

単に送信先を追加するだけではなく CCBCC も同じように追加できるのもいいですね。
こちらも第二引数に名前を設定することが可能です。

添付ファイルを追加する

メールに添付ファイルを追加する場合は下記のような感じです。

添付ファイルまでの 相対パス・絶対パス を指定することで、自動的に添付することができます。
もちろん、複数個つけることも可能で、その場合は複数回 addAttachment を呼び出します。

 

余談ですが、第二引数は表示する名称で、省略が可能です。

エラーメッセージを日本語にする

基本的にエラーなどは全て英語となりますが、日本語として出力してほしい時もあると思います。
そんな時は下記の命令を1つ追加してあげましょう。

ただし 「SMTP connect() failed」 「SMTP server error」 など、一部翻訳されていないものがありますので、過度な期待は厳禁です。

GmailのSMTPからメールを送る

SMTPサーバをGmailにすることもあると思います。
その場合は下記のように設定してあげましょう。

プログラムはこれで完了ですが、まだGmail側で 安全性の低いアプリの許可を有効にするセキュリティから端末のアクティビティーを許可する の2つの設定を行う必要があります。
それぞれの設定は下記の公式サイトをご確認ください。

 

安全性の低いアプリと Google アカウント – Google アカウント ヘルプ –

アカウントでの不審なアクティビティの検出 – Google アカウント ヘルプ –

日本語を含むメールを送る

昔からメール送信で問題になる日本語ですが、下記のようにすればタイトルや本文、送信者から添付のファイル名まで日本語が使えるようになります。

古いメールクライアントで文字化けしてしまう場合、CharSet を ISO-2022-JP にすることで解決する場合もあります。

HeaderのX-Mailerを変更したい

デフォルトではX-Mailrが PHPMailer になっています。
PHPMailerだけなら良いのですが、バージョンも記載されているため、セキュリティホールが見つかった場合は格好の餌になってしまう恐れもあります。

 

そんなX-Mailerを変更するには下記のようにします。

なお、X-Mailerを完全に消したい場合は 半角スペース を設定してあげることで消すことができます。

Composerが使えない・使わない場合

もし環境によりComposerが使えない場合やWindowsで使用する場合など、別の方法でインストールしたい時はこちらの記事をご参照ください。
PhpSpreadsheetを例に挙げた、Composerを使わずに使用する方法を記載しています。

 

さいごに

mailmb_send_mail などでももちろんメールは送れますが、添付ファイルや文字コードなどを意識すると手間ですよね?
この PHPMailer は歴史も長く、人気もあるためか活発に更新されています。
業務系システムに入れる場合でも、セキュリティ的な問題が比較的早く解決されるため非常に便利です。

 

メール送信機能を追加する場合は一度使ってみてはどうでしょうか?

スポンサーリンク

POPULAR

のえる

のえる

Full-stack Developer