カテゴリ: PHP 更新日: 2026/04/28

PHPのmail関数を使ったメール送信を完全ガイド!初心者でもわかる基本の使い方

PHP の mail() 関数を使った基本的なメール送信
PHP の mail() 関数を使った基本的なメール送信

先生と生徒の会話形式で理解しよう

生徒

「PHPでメールを送ることができると聞いたんですが、本当にプログラムだけで送れるんですか?」

先生

「できますよ。PHPには、メール送信専用のmail関数が用意されています。」

生徒

「パソコンにあまり詳しくなくても理解できますか?」

先生

「大丈夫です。メールの仕組みから順番に説明していきましょう。」

1. PHPでメール送信とは何か

1. PHPでメール送信とは何か
1. PHPでメール送信とは何か

PHPのメール送信とは、PHPというプログラミング言語を使って、インターネット経由でメールを送る仕組みのことです。普段使っているメールソフトを開かなくても、プログラムが自動でメールを送ってくれます。たとえば、お問い合わせフォームから送信された内容を管理者に届けたり、会員登録が完了したことを自動で知らせたりする場面で使われます。

ここで出てくる「自動」という言葉は、人がボタンを押さなくても、条件がそろえば勝手に動くという意味です。PHPのmail関数を使うと、この自動メール送信がとても簡単に実現できます。

2. mail関数の基本的な役割

2. mail関数の基本的な役割
2. mail関数の基本的な役割

mail関数は、PHPに最初から用意されている機能で、メールを送るための命令です。関数とは、よく使う処理をひとまとめにした便利な道具箱のようなものです。mail関数には、送信先のメールアドレス、件名、本文などを渡すだけで、メールを送る役割があります。

イメージとしては、封筒に「宛先」「タイトル」「手紙の中身」を書いてポストに入れる感覚です。PHPでは、その作業を文字として指定するだけで完了します。

3. 一番シンプルなmail関数の書き方

3. 一番シンプルなmail関数の書き方
3. 一番シンプルなmail関数の書き方

まずは、最も基本的なPHPのmail関数の使い方を見てみましょう。内容はとても短く、初心者でも読みやすい形です。


<?php
$to = "test@example.com";
$subject = "テストメール";
$message = "これはPHPのmail関数で送信したメールです。";

mail($to, $subject, $message);
?>

ここでは、メールを送りたい相手のアドレス、メールの件名、本文をそれぞれ変数に入れています。変数とは、文字や数字を入れておく箱のようなものです。最後のmail関数で、それらをまとめて送信しています。

4. 日本語メールで気をつけるポイント

4. 日本語メールで気をつけるポイント
4. 日本語メールで気をつけるポイント

PHPでメール送信をするとき、日本語を使う場合には少し注意が必要です。文字化けとは、文字が正しく表示されず、意味不明な記号になる状態のことです。これは、文字の扱い方が合っていないときに起こります。

日本語メールでは、文字コードを指定して送ることが大切です。難しそうに聞こえますが、決まった書き方を覚えれば問題ありません。


<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");

$to = "test@example.com";
$subject = "日本語メールのテスト";
$message = "日本語が正しく表示されるか確認します。";

mb_send_mail($to, $subject, $message);
?>

ここではmb_send_mailという、日本語向けのメール送信方法を使っています。日本語のブログ記事やお問い合わせフォームでは、よく使われる方法です。

5. 差出人を設定する方法

5. 差出人を設定する方法
5. 差出人を設定する方法

メールには、誰から送られたのかを示す差出人情報があります。これを設定しないと、受信した側で怪しいメールに見えてしまうことがあります。差出人を指定することで、信頼性の高いメールになります。


<?php
$to = "test@example.com";
$subject = "差出人付きメール";
$message = "差出人を設定したメールです。";
$headers = "From: info@example.com";

mail($to, $subject, $message, $headers);
?>

ここで使っているheadersは、メールの追加情報を書く場所です。Fromと書くことで、差出人のメールアドレスを指定しています。

6. 実行結果のイメージ

6. 実行結果のイメージ
6. 実行結果のイメージ

PHPのmail関数が正しく動作すると、受信箱にメールが届きます。画面に直接結果が表示されるわけではありませんが、実際には次のような内容のメールが届きます。


件名:差出人付きメール
本文:差出人を設定したメールです。

このように、プログラムで書いた内容が、そのままメールとして相手に届きます。初めて成功すると、とても達成感があります。

7. mail関数が使えない場合の注意点

7. mail関数が使えない場合の注意点
7. mail関数が使えない場合の注意点

PHPのmail関数は、サーバーの設定によっては使えないことがあります。サーバーとは、インターネット上で動いているコンピュータのことです。レンタルサーバーによっては、メール送信機能が制限されている場合があります。

その場合は、サーバーの説明ページを確認したり、サポートに問い合わせる必要があります。プログラムが間違っていなくても送れないことがある、という点を知っておくことが大切です。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

PHPのメール送信で多い失敗は、メールアドレスの書き間違いや、全角文字が混ざってしまうことです。全角とは、日本語入力で使われる幅の広い文字のことです。メールアドレスは、必ず半角英数字で入力する必要があります。

また、テスト環境ではメールが届かないこともあります。本番環境で初めて動く場合もあるため、焦らず一つずつ確認することが重要です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)