mb_send_mail()をいろいろなパターンで実装

更新日:2025/01/20

mb_send_mail()の引数一覧

引数必須説明使用頻度
$to宛先メールアドレス必須
$subject件名必須
$messageメール本文必須
$headers×From, CC, BCCなどのメールヘッダーよく使用
$parameters×sendmailコマンドのオプションほとんど使用しない

mb_send_mail()とPHPMailerの違い

メール送信方式の比較 mb_send_mail() 必要な設定: ✓ 宛先($to) ✓ 件名($subject) ✓ 本文($message) オプション設定: ・From(ヘッダー) ・CC/BCC(ヘッダー) ※サーバー設定使用 ※追加設定不要 PHPMailer 必須設定: ✓ SMTPホスト ✓ SMTPポート ✓ SMTPユーザー名 ✓ SMTPパスワード 追加設定: ・SSL/TLS設定 ・文字エンコード ・エラーハンドリング 高機能化

メール送信機能の使い分け判断基準

mb_send_mail()を選ぶ場合:
小規模サイトのお問い合わせフォーム、プロトタイプ開発、メール送信頻度が少ないケースなど、シンプルな機能で十分な場合。特にレンタルサーバーでの基本的な実装に適しています。

PHPMailerを選ぶ場合:
中規模以上のサイト、大量メール送信、エラー対応が重要、セキュリティ要件が厳しい、外部SMTPサーバーを使用する場合など、より本格的な実装が必要なケース。本番環境での利用に推奨されます。

つまり、プロジェクトの規模、送信頻度、セキュリティ要件、開発フェーズによって使い分けを検討します。mb_send_mail()はシンプルさが求められる場合、PHPMailerは信頼性と機能性が重視される場合に選択します。

メール送信方式の設定項目比較

設定項目mb_send_mail()PHPMailer
サーバー設定
SMTPホストサーバーのデフォルト要設定
SMTPポートサーバーのデフォルト要設定
ユーザー名不要要設定
パスワード不要要設定
追加設定
SSL/TLSサーバーのデフォルト要設定
文字エンコードサーバーのデフォルト設定可能
エラーハンドリング基本的なのみ詳細設定可能
デバッグモードなしあり

同一ページ処理(セルフポスト)のシンプルなPOSTフォーム

  • フォームのaction属性を空にすることで、同じページで送受信処理が完結
  • PHPの標準機能のみを使用(特別なライブラリ不要)
  • シンプルなエラーハンドリング
HTMLフォーム action=”” method=”POST” POST送信 PHPで受信 $_POST[‘to’] $_POST[‘subject’] 引数として渡す mb_send_mail() メール送信処理 true/false返却
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <form method="post">
        <input type="text" name="to">
        <input type="text" name="subject">
        <textarea name="message"></textarea>
        <button type="submit">送信</button>
    </form>

    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $to = $_POST['to'];
        $subject = $_POST['subject'];
        $message = $_POST['message'];
        
        $result = mb_send_mail($to, $subject, $message);
        
        if ($result) {
            echo '送信成功';
        } else {
            echo '送信失敗';
        }
    }
    ?>
</body>
</html>
話題のキーワードから探す