PHPを使ったメール送信の基本 | サンプルコードと解説

PHPを使ったウェブアプリケーションやウェブサービスの開発において、メール送信機能は重要な要素の一つです。

ユーザーへの確認メール、パスワードリセットの通知、ニュースレターの送信など、さまざまな用途でメール送信が必要となりますが、PHPはそのシンプルさと柔軟性から、メール送信の実現に適した言語の一つです。

この記事では、「PHPを使ったメール送信の基本」に焦点を当て、サンプルコードと解説を提供します。

初心者から中級者まで、どなたでも理解できるように、ステップバイステップで説明します。

このガイドを通じて、PHPを使用したメール送信の手順を習得し、ご自分のプロジェクトに組み込む準備を整えていきましょう。

PHPでメール送信のサンプルコード

<?php

// 送信先メールアドレス
$to = "to@example.com";

// 件名
$subject = "サンプルメール";

// メッセージ本文
$message = <<<EOM
これはPHPを使用して送信したサンプルメールです。\r\n
改行コードは反映されない。<br />
HTMLタグでの改行が反映されて、<b>強調表示</b>などが指定できる。
EOM;

// 送信元情報
$from = "from@example.com";
$fromName = "PHP_mail";

// メールヘッダ
$headers = <<<EOH
From: {$fromName} <{$from}>
Reply-To: {$from}
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
EOH;

// メール送信
if (mail($to, $subject, $message, $headers)) {
    echo "メールが送信されました。\n";
} else {
    echo "メールの送信に失敗しました。\n";
}

実際に届くメールがこちら

解説

このサンプルコードは、PHPで基本的なメール送信を行うための出発点となります。必要に応じて、SMTP認証を追加したり、エラーハンドリングを強化したりすることができます。

サンプルコードでは mail()関数を使用して送信しています。この関数では php.ini のSMTP情報をもとにメールを送信しており、以下の設定を行なっています。

$ php -i | grep -i smtp
SMTP => localhost => localhost
smtp_port => 25 => 25
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp

この設定では実行環境内にメール送信用のSMTPサーバーを立ち上げておく事で送信が可能になります。

mail()関数の実行方法は

  • 送信先のメールアドレスを記載
  • 件名とメッセージを指定
  • メールヘッダーに返信先とUTF-8である指定を追加

この指定をするだけでメール送信を行うことができます。

CCやBCCについてもヘッダー情報を編集することで対応可能になります。ぜひ、公式マニュアルを確認して使いこなしてみてください。

https://www.php.net/manual/ja/function.mail.php

終わりに

PHPでメール送信をする方法について解説してきました。

PHPによるメール送信をする方法はSMTPサーバーに投げるだけなので簡単に実装できることがわかると思います。

ですが、メールの送受信にはPHP以外の知識も必要になります。SMTPサーバーを立ち上げたり、迷惑メールと判定されないためにも送信元のドメインにSPFレコードを追加したり、メールサーバーの構築に精通する必要があります。

今回紹介した内容ではレンタルサーバーのエックスサーバーで検証しました。一般的なレンタルサーバーはメールの送受信に対応しているため、メール処理が簡単に実装できる利点があります。最初からメールの送受信機能が必要なのであればレンタルサーバーでサービス構築するのもオススメします。

以上、お疲れ様でした。

投稿者


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA