どのようにPHPでメールを送信するには?


PHPは最も人気のあるウェブ開発言語の一つであり、ダイナミックなWebアプリケーションを作成する人気のある方法です.この記事では、アプリケーション内のメール機能を無痛に構成するのをお手伝いします.
それで、始めましょう!PHPでメールを送信する2つの基本的な方法があります.組み込みのメール機能と外部メールパッケージです.
完全な記事を読むには、Mailtrapのブログをチェックしてください. How to Send Emails in PHP ?

PHP組み込みのメール関数()


PHPのビルトインメール機能は非常に簡単です、そして、それは電子メールを送るための限られた機能性を提供します.あなたの電子メールに添付ファイルを追加することができなくなり、埋め込まれた画像で美しいHTMLテンプレートを構築するトリッキーなタスクを達成することができます.
PHP Mail Function(以下Code)の反対側は、メールがあなたのウェブサーバーから送られるということです.そして、それはスパムとブラックリストの疑いのようなセキュリティ懸念のために配達可能性で問題を引き起こすかもしれません.この問題を解決する最良の方法はSMTPサーバーを介してメッセージを送信することですが、この機能も同様に制限されます.PHP mail ()は通常、外部のSMTPサーバを使用することができず、SMTP認証をサポートしません.
以下はPHPの組み込み関数です.
  • 添付ファイルや画像なしで簡単なHTML/テキストメッセージを作成する
  • localhostとxmapp経由でメールを送信する
  • "$ to "パラメータを持つ複数の受信者を含みます.
  • それはあなたのローカル環境で簡単な、ほとんどのテキストベースの通知に適しています.あなたのアプリケーションのユーザーと通信する必要がある場合は、外部のメーラーパッケージをインストールする方が良いです.
    PHP組み込みのMail Function ()にコミットしている場合は、基本的なコードとその主なパラメータを見てみましょう.

    構文とパラメータ


    PHPのメール構文はとても簡単です.<?php
    mail($to_email_address,$subject,$message,[$headers],[$parameters]);
    ?>
    次のパラメータを使用します.
  • あなたのメッセージ受取人(s).メールアドレス形式は[email protected] またはユーザ[email protected] . 一般に、それは従う必要がありますRFC 2822 .
  • あなたのメッセージの件名
  • あなたのメッセージの本文.行はCRLF (\r\n )で区切られます.各行は70文字を超えてはならない.
  • あなたのメッセージの追加受信者、CCまたはBCCに含めることができます.
  • ヘッダは"from "ヘッダを除いてオプションです.INIまたはカスタム“から”:ヘッダーが行方不明.
    あなたはメールから“メール”アドレスを変更し、“返信”アドレスを設定するには、追加のヘッダーを使用することができます.
    詳細と追加パラメータについてはPHP documentation .

    PHP mail ()関数を使用したHTMLメールの送信


    メッセージの本文はHTMLで書くことができます.しかしながら、上記で述べたように、それは簡単でなければなりません.PHP mail function ()では、HTML部分は次のようになります.
    $message = '
    <html>
    <head>
      <title>Review Request Reminder</title>
    </head>
    <body>
      <p>Here are the cases requiring your review in December:</p>
      <table>
        <tr>
          <th>Case title</th><th>Category</th><th>Status</th><th>Due date</th>
        </tr>
        <tr>
          <td>Case 1</td><td>Development</td><td>pending</td><td>Dec-20</td>
        </tr>
        <tr>
          <td>Case 1</td><td>DevOps</td><td>pending</td><td>Dec-21</td>
        </tr>
      </table>
    </body>
    </html>
    ';
    
    HTMLメールを送信するには、コンテンツタイプヘッダーを設定する必要があることを覚えておく必要があります.$headers[] = 'MIME-Version: 1.0';
    $headers[] = 'Content-type: text/html; charset=iso-8859-1';

    簡易伝送プロトコル( SMTP )


    SMTP設定をどこで指定しますか?これは公正な質問です.PHPインストールフォルダに移動し、"php . ini "ファイルに設定します.しかし、これは私たちが既に言及しているので、PHPメール機能がSMTP認証をサポートしていないので、外部サーバを通してメッセージを送るのを許さないので、localhostまたはxmappのような解決策のために働くだけです.
    いくつかの他の、かなり危険なオプションがありますが、我々はここでそれらを促進しません.また、外部のSMTPサーバーを介してメールを送信するための外部PHPメールパッケージを使用することをお勧めします.

    PHPメールパッケージ


    既に述べたように、ネイティブのPHP mail ()関数は大量送信に関して制限機能を持っています.たとえば、それは作成するために設計されていませんengaging email templates それはあなたの次のキャンペーンを高めるかもしれないか、大量のメールを送るかもしれません.
    しかし、PHPはまだmost popular programming languages , また、大量のメールを送信するためのリソースが不足していません.PEAR MailやSwift Mailerのようないくつかのプラグインをお勧めします
    PEARメール
    Pear Mail 電子メールを送信するための複数のインターフェイスを提供するクラスです.
    以下はPEARメールで行うことです.
  • 添付ファイルとインライン画像を作成する複雑なHTML/テキストメッセージをMail_Mime class )
  • PHPの組み込みメール関数、sendmailプログラム、SMTPサーバ経由でメールを送信する
  • キューから複数のメールを送信するMail_Queue クラス).
  • スウィフトメーラー
    Swift Mailer PHPでメールを送信するための別の人気のあるパッケージです.これは、機能豊富な、よくドキュメントで覆われ、非常に簡単に使用することです.
    ここでは、迅速なメーラーで行うことができますです.
  • 複雑なHTMLを作成/multipartテンプレート
  • 添付ファイルを追加し、画像を埋め込む
  • 認証SMTP、sendmail、postfix、または独自の輸送を介してメールを送信する
  • 追加のプラグインを使用します.
  • それに加えて、迅速なメイラーは、強化されたセキュリティを提供し、低メモリ使用量で大きな添付ファイルや画像を処理します.
    phpmailer
    そして最後にPHPMailer , PHPのライブラリを送信する古典的な、最も人気のある電子メールです.それは別の記事とチュートリアルに値する.あなたはそれを見つけるhere .
    以下はphpmailerで行うことです.
  • 複雑なHTMLを作成/multipartテンプレート
  • 添付ファイルと埋め込み画像を追加する
  • 認証SMTP経由でメールを送信します.
  • phpmailerは、ヘッダーの注入攻撃に対して保護され、自動的に電子メールを検証します.
    この記事では、基本的なPHPメールの送信原理、構文、およびパラメータを説明しました.また、PHPを使用してメールを送信する主な方法を見直しました:その組み込みのメール機能と最も人気のある外部メールパッケージです.phpmailerとswimamailer PHPのメールのための標準ライブラリは、今日送信し、PEARメールはまだ広く使用されます.
    あなたの現在のニーズと好みに応じてあなたのオプションを選択し、事前に電子メールをテストします.電子メール実験のためにMailtrap , 偽のSMTPサーバー.それは本物のSMTPサーバーを模倣し、仮想受信トレイでテストメールをトラップします.試してみる!
    フルチェックSending emails with PHP mailtrapの記事.IOは、電子メールパッケージと例の詳細を得るために!