PHPMailerを使用してPHPで電子メールを送信します
phpmailer:phpメールを送信するための強力なツール
PHPMailerは、2001年にリリースされて以来、PHP開発者がプログラムの電子メールを送信するための優先オプションの1つであり、SwiftMailerなどの他の人気のあるライブラリと同等です。この記事では、PHPMailerがPHPの組み込みmail()
機能よりも優れている理由を説明し、コードの例を提供します。
コアポイント
- PHPMailerは、オブジェクト指向のインターフェイス、より簡単なHTMLおよびアタッチメント処理、非ローカルメールサーバーの使用など、PHPの組み込み
mail()
関数よりも多くの機能と柔軟性を提供する人気のあるオープンソースPHPメール配信ライブラリです。能力。 - PHPMailerはComposerを使用してインストールでき、WordPress、Drupal、Joomlaなどの人気のあるPHPコンテンツ管理システムで使用できます。
- このライブラリは、40を超える言語でエラーメッセージを印刷できる強力なエラー処理メカニズムを提供し、SSLおよびTLS認証だけでなくSMTPプロトコルサポートを統合します。
- メールの送信に加えて、PHPMailerは添付ファイルの追加、HTMLまたはプレーンテキストバージョンのメールを送信し、SMTPを使用して非ローカルサーバーからメールを送信することもサポートしますが、POP3プロトコルを使用してメールサーバーからメールの取得をサポートしていません。
phpmailerとphpmail()
関数の比較
ほとんどの場合、PHPMailerはPHPビルトインmail()
関数に代わるものですが、多くの場合、mail()
関数の柔軟性はニーズを満たすのに十分ではありません。
最初に、phpmailerはオブジェクト指向のインターフェイスを提供しますが、mail()
関数はオブジェクト指向ではありません。通常、PHP開発者は、mail()
関数を使用して電子メールを送信するときに$headers
文字列を作成することを好みません。これには多くのエスケープ操作が必要です。 PHPMailerはこのプロセスを簡素化します。 mail()
関数を使用して添付ファイルとHTMLベースのメールを送信する場合、開発者は複雑なコード(脱出、エンコード、フォーマット)を記述する必要があり、PHPMailerはこれを簡単にします。
さらに、mail()
関数では、電子メールを送信するためにローカルメールサーバーが必要です。これは必ずしも簡単ではありません。認証が利用可能な場合、PHPMailerは非ローカルメールサーバー(SMTP)を使用できます。
その他の利点は次のとおりです
- メッセージの送信が失敗すると、40以上の言語でさまざまなエラーメッセージを印刷できます。
- SMTPプロトコルサポートとSSLおよびTLS認証を統合します。
- 非HTMLメールクライアントに別のプレーンテキストバージョンのメッセージを送信できます。
- それを安全で最新の状態に保つために、開発者の非常に活発なコミュニティがあります。
phpmailerのインストール
phpmailerは、Composer:
を使用してインストールできます
composer require phpmailer/phpmailer
を使用してローカルWebサーバーから電子メールを送信します
以下は、PHPMailerを使用してローカルWebサーバーからメールを送信する最も簡単な例です。composer require phpmailer/phpmailer
PHPファイルのコードとコメントは、電子メールの件名、送信者の電子メールアドレス、HTML電子メールボディ、およびエラーの扱い場所を十分に説明できます。
添付ファイルを含む電子メールを送信します
以下は、phpmailerを使用して添付ファイル付きのメールを送信する方法の例です。
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; // PHPMailer对象 $mail = new PHPMailer(true); // 构造函数中的参数true启用异常 // 发件人邮箱地址和名称 $mail->From = "from@yourdomain.com"; $mail->FromName = "完整姓名"; // 收件人地址和名称 $mail->addAddress("recepient1@example.com", "收件人姓名"); $mail->addAddress("recepient1@example.com"); // 收件人姓名是可选的 // 收件人回复地址 $mail->addReplyTo("reply@yourdomain.com", "回复"); // 抄送和密送 $mail->addCC("cc@example.com"); $mail->addBCC("bcc@example.com"); // 发送HTML或纯文本邮件 $mail->isHTML(true); $mail->Subject = "主题文本"; $mail->Body = "<i>HTML格式邮件正文</i>"; $mail->AltBody = "这是邮件内容的纯文本版本"; try { $mail->send(); echo "邮件已成功发送"; } catch (Exception $e) { echo "邮件错误:" . $mail->ErrorInfo; } ?>
メールに添付ファイルを追加するには、ファイルパスをパラメーターとして渡すことにより、phpmailerオブジェクトの
関数を呼び出すだけです。複数のファイルを添付するには、複数回呼び出す必要があります。 addAttachment
2つの例では、デバッグのために
PHPMailerのクラスを使用したため、エラーが発生する可能性のある問題をデバッグするのに役立ちます。また、PHPMailerコンストラクターにパラメーターException
を追加して、高レベルでより記述的な例外を出力しました。 true
関数を実行することに関連する最大のエラーがあります。
mail()
より詳細なエラー情報が必要な場合は、
句に以下を追加することもできます。
通常、メール関数の問題は、欠落しているメールサーバーの設定に関連しています。
catch
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; $mail = new PHPMailer; $mail->From = "from@yourdomain.com"; $mail->FromName = "完整姓名"; $mail->addAddress("recipient1@example.com", "收件人姓名"); // 提供附件的文件路径和名称 $mail->addAttachment("file.txt", "File.txt"); $mail->addAttachment("images/profile.png"); // 文件名是可选的 $mail->isHTML(true); $mail->Subject = "主题文本"; $mail->Body = "<i>HTML格式邮件正文</i>"; $mail->AltBody = "这是邮件内容的纯文本版本"; try { $mail->send(); echo "邮件已成功发送"; } catch (Exception $e) { echo "邮件错误:" . $mail->ErrorInfo; } ?>
ローカリゼーションエラーメッセージを表示error_get_last
print_r(error_get_last());
異なる言語でエラーメッセージを表示するには、PHPMailerのソースコードからProjectディレクトリに言語ディレクトリをコピーします。
たとえば、ロシア語でエラーメッセージを返すには、次のメソッドコールを使用してphpmailerオブジェクトをロシア語に設定します。
言語ディレクトリに独自の言語ファイルを追加することもできます。 $mail->ErrorInfo
を使用しています
別のホストのメールサーバーを使用してメールを送信できますが、これには最初に認証が必要です。たとえば、Gmailのメールサーバーからメールを送信するには、Gmailアカウントが必要です。SMTPは、メールクライアントがメールリクエストをメールサーバーに送信するために使用されるプロトコルです。メールサーバーがメールを検証した後、ターゲットメールサーバーに送信されます。
<code>Array ( [type] => 2 [message] => mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() [file] => OUR_PATH \vendor\phpmailer\phpmailer\src\PHPMailer.php [line] => 863 )</code>
以下は、Gmail Mail Serverからドメインからメールを送信する例です。コードを実行するためにローカルサーバーは必要ありません。 SMTPプロトコルを使用します:
composer require phpmailer/phpmailer
GmailにはSMTPを介してTLS暗号化が必要なため、それに応じて設定します。 SMTPを介して送信する前に、暗号化タイプが必要かどうか、および認証が必要な場合は、ユーザー名とパスワードも必要な場合、ホスト名、ポート番号を確認する必要があります。 Gmailで2要素認証を有効にしても、ユーザー名/パスワードでSMTPを使用することはできないことに注意してください。代わりに、追加の構成が必要です。
ローカルメールの代わりにリモートSMTPを使用することの大きな利点の1つは、PHPの関数を使用してメールを送信し、送信者アドレスドメインをローカルドメイン名(サーバー名)とは異なるものに設定する場合、受信者は受信者の場合です。メールサーバーの攻撃フィルターは、スパムとしてマークされます。たとえば、送信者アドレスname@gmail.comを使用してHostname Example.comを備えたサーバーからname@yahoo.comにメールを送信すると、Yahooのサーバーはスパムとしてマークするか、ユーザーにメッセージを表示します。メッセージのソースはexample.comであるため、メッセージを信頼するためには、gmail.comから表示されます。 name@gmail.comを持っていますが、Yahooにはこれを知る方法がありません。 mail()
phpmailerでは、Pop-be-smtp検証を許可してメールを送信します。つまり、POPを使用して認証し、SMTPを使用してメールを送信できます。残念ながら、PHPMailerは、POP3プロトコルを使用してメールサーバーからメールの取得をサポートしていません。メールのみの送信に限定されます。
結論
あなたがPHP開発者である場合、プログラムで電子メールの送信を避けることはほとんど不可能です。 MandrillやSendGridなどのサードパーティサービスを選択できますが、これは単に実行可能ではない場合があり、自分のメール送信ライブラリを書くときはさらにそうです。これは、PHPMailerとその代替案(Zend Mail、Swift Maelerなど)が出てくる場所です。
リポジトリWikiまたは公式ドキュメントで、このライブラリに関するAPIについて学ぶことができます。
PHPライブラリの依存関係に悩まされていますか?画面録音を見て、作曲家がそれを管理するのに役立つ方法を確認してください。phpmailer
に関するよくある質問phpmailerとは何ですか? PHPMailerは、PHPアプリケーションから電子メールを送信するための人気のあるオープンソースPHPライブラリです。これは、SMTP、
、またはその他の電子メール送信方法を介して電子メールを送信するためのシンプルで柔軟な方法を提供します。
mail()
phpmailerをインストールする方法は? Composerを使用してphpmailerをインストールするか、Githubからライブラリを直接ダウンロードすることもできます。詳細なインストール手順は、PHPMailerドキュメントに記載されています。
phpmailerは自由に使用できますか?はい、PHPMailerはオープンソースであり、LGPLライセンスの下でリリースされています。つまり、オープンソースおよび商業プロジェクトで無料で利用できます。
phpmailerのシステム要件は何ですか? PHPMailerは、PHP 5.5以降と互換性があります。 Webホスティング環境がこれらのPHPバージョンをサポートしていることを確認してください。
phpmailerを使用して電子メールを送信する方法は? phpmailerクラスのインスタンスを作成し、SMTPサーバーの詳細や電子メールコンテンツなどの必要なプロパティを設定して、
メソッドを呼び出すことにより、phpmailerを使用して電子メールを送信できます。phpmailerはメールで添付ファイルを処理できますか?はい、PHPMailerは、メールに添付ファイルを追加する方法を提供します。サーバーまたはリモートの場所からファイルを添付できます。
はい、phpmailerを使用すると、プレーンテキストとHTML形式で電子メールを送信できます。それに応じてメッセージの種類とフォーマットを設定できます。プレーンテキストメールは、非HTMLメールクライアントに適しています。
phpmailerを使用して、非HTMLメールクライアントにプレーンテキストメールを送信できますか?
はい、phpmailerを使用すると、HTMLメールの代替としてプレーンテキストメールを送信できます。それに応じてメッセージの種類とフォーマットを設定できます。プレーンテキストメールは、非HTMLメールクライアントに適しています。
sendmailなどの非SMTPメールサーバーでphpmailerを使用できますか?はい、PHPMailerは、SMTP、
、およびその他のカスタムメソッドを含むさまざまな電子メール転送方法をサポートしているため、さまざまな種類のメールサーバーで使用できます。 mail()
以上がPHPMailerを使用してPHPで電子メールを送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。
