PHPメールの送信方法を詳しく解説
今回は、PHPのメール送信の使い方と、PHPメール送信の注意点について、実際の事例を交えながら詳しく解説していきます。
電子メールの送信は、ユーザーのアクティブ化やパスワードの取得などの Web サイトの一般的な機能です。多くの場合、ユーザーのメールボックスに電子メールを送信する必要があります。この記事では、まず電子メールの送信に関連する概念を確認し、次に PHP を使用して電子メールを送信するためのサンプル コードを示します。
テキスト メッセージを送信する
テキスト メッセージは機能的には電子メールに似ており、通知やセキュリティ検証によく使用されます。テキスト メッセージを送信するには (基本的に) プロバイダーに料金を支払う必要があるため、SMS プロバイダーには、ユーザーがアクセスできる明確なドキュメントと使いやすいインターフェイスを提供するインセンティブがあります。一般的に、テキスト メッセージを送信する人は次のとおりです。
Alibaba Big Fish、Aggregated Data などのサプライヤーを探しています。
アカウントを登録し、appid と appkey を取得します。
インターフェイスを表示します。ドキュメントを作成し、アプリケーションに統合します。
API を呼び出してテキスト メッセージを送信します。
プロセスはシンプルでわかりやすく、アクセスして使用するのも非常に便利です。基本的には1〜2時間以内に接続してテストできます。ユーザーは、通信プロセス中にメッセージのエンコードやアドレス指定などの詳細を考慮する必要がありません。欠点は、料金を支払わなければならないことです。
電子メールは通常無料のサービスですが、関連するサポートが十分に整備されていないことも理解する必要があります。さまざまな
プログラミング言語で電子メールを送信するためのクラス ライブラリが多数あり、ソースの観点から、ローカル マシンからの送信とサードパーティの電子メール サービス プロバイダーからの送信の 2 つのカテゴリに基本的に分類できます。電子メールの送信プロセスを理解するために、まず関連する概念をいくつか紹介しましょう。
関連概念インターネットに触れる人のほとんどは電子メールの使用経験がありますが、基本的に電子メール クライアント、Web ページ、プロバイダーの概念に限定されています。開発者として、このセクションの次の概念を理解すると、電子メール通信の詳細をよりよく習得できるようになります。
MUA: メール ユーザー エージェント、メール ユーザー エージェント。ユーザーエージェントとは開発においてよく使われる言葉で、主に人間の意図を理解し、ユーザーに代わってリソースを要求するツールを指します。たとえば、ブラウザは最も一般的に使用されるユーザー エージェントであり、HTTP/HTTPS プロトコル形式で Web サーバーにリクエストを送信し、応答を解析してレンダリングし、ユーザーに表示します。電子メール ユーザー エージェントは通常、Foxmail や Outlook などのツールであり、電子メールを作成した後、形式に従って電子メールの内容をカプセル化し、メール サーバーと通信します。
MTA: Mail Transfer Agent、ユーザーの電子メールの送受信を支援するプログラム。よく言われるメール サーバーとは、sendmail、postfix、QMail などのオープン ソース プログラムを指します。
MRA: メール取得エージェント (メール収集エージェント) は、ローカルのメール サーバーからユーザーのメールを取得します。メール クライアントは一般的な MRA です。
SMTP: シンプルメール転送プロトコル、シンプルメール転送プロトコル。ユーザー、メール サーバー、およびメール サーバーはすべて、このプロトコルを使用して相互にメールを転送します (デフォルトはプレーン テキストであり、SSLTLS 暗号化を使用できます)。
POP3/IMAP: ポスト オフィス プロトコル バージョン 3/インターネット メッセージ アクセス プロトコル、ポスト オフィス プロトコル バージョン 3 またはネットワーク情報取得プロトコル。クライアントがサーバーからメールを取得するために使用するプロトコル。
ユーザー A (163 メールボックス) がユーザー B (Gmail メールボックス) にレターを送信します。ユーザー B がレターを受け取るプロセスには、上記の概念が含まれます。プロセスと概念的な関係は、次の簡略化された図で表すことができます:
用户A --发送邮件--> 用户B M|S M|I U|M R|M A|T A|A |P |P v v MTA(163)--转发(SMTP)->MTA(gmail)
注: 上の図は、電子メールを送信する一般的なプロセスを示しています。他の MSA、MDA、ESMTP、SMTPS などがプロセス全体に現れる場合があります。メールの送受信には影響しませんのでご了承ください。以下に記載する略語や概念については別途記載しますので、ご自身でご確認ください。
postfixLinux上でメールを送信するためのソフトウェアは主にsendmailとpostfixで、システム内で上記の概念におけるMTA/MDA(Mail Delivery Agent、メール配信エージェント)の役割を果たします。これは、ユーザーがアウトバウンド電子メールを送信したり、ユーザーのメールボックス (デフォルトの場所 /var/spool/mail/username) に配信された電子メールを受信したりするのに役立ちます。
sendmailは非常に評判の高い老舗のメールソフトです。しかし、Wietse (Wietse Zweitze Venema) はそれに満足できず、後置を考え出しました。 postfix コマンドは、sendmail と (ほぼ) 互換性がありますが、より効率的で安全です (サフィックス修正の起源)。現在、ほとんどの Linux ディストリビューションのデフォルトの電子メール送受信ソフトウェアです。sendmail の代わりに postfix を使用することをお勧めします。何年も前にこのブログに sendmail の設定方法に関する記事がありました。当時私は若くて無知だったので、時間をかけてその記事を改訂する予定でした)。
Postfix のメインの 設定ファイル は /etc/postfix/main.cf です。設定ファイルには十分にコメントが付けられており、オプションは基本的に一目瞭然です。最も重要な設定は、myhostname、myorigin、inet_interfaces、inet_protocols、および mydestination (外部からの手紙を受信する予定の場合) です。 inet_interfaces が localhost として構成されている場合、inet_protocols の値は ipv4 である必要があることに注意してください。そうでない場合は、「postfix: Fatal:parameter inet_interfaces: no local interface found for ::1」のようなエラー メッセージが表示される場合があります。
メールに関連するいくつかの一般的な後置コマンドは次のとおりです:
mail または mailx、メールを送信します。 tlanyan ユーザーは root に電子メールを送信します: mail -s "Greetings" root@localhost -r tlanyan@localhost、ターミナルに「A nice day!」と入力し、Enter キーを押してテキスト編集を終了し、電子メールを送信します。送られた。 root アカウントにログインすると、/var/spool/mail/root に新しい電子メールがあることが示されます。電子メールの詳細情報を表示するには、tail またはその他のコマンドを使用します。
postquque、メール送信キューを表示します。 postqueue -p は sendmail の mailq コマンドを置き換えることができ、postqueue -f はキューを更新します (キュー内のメールの送信を強制します)。
postcat、未送信メールの情報を確認します。たとえば、postcat -q xxxx (xxxx は postqueue または mailq で表示される未送信キュー ID) はメールの詳細情報を表示でき、postcat -b -q xxxxx はメール本文のみを表示できます。
postsuper、スーパー ユーザーのみが使用できる電子メール管理プログラム。 postsuper -d xxxx、キュー ID xxxxx のメールを削除、postsuper -h xxxxx、キュー ID xxxx のメールの送信を一時停止します。
メールを送信するには、基本的に上記の紹介で十分です。 mail コマンドで送信されたメールは、postfix が実行されている場合にのみ配信できることに注意してください (ps aux | grep postfix | grep -v grep の出力が空ではない)。
postfixでは設定後、外部へのメール送信や外部ネットワークからのメール受信が可能ですが、コマンドライン操作に限定されます。 Foxmail および他のクライアントを使用して電子メールを送受信する場合は、サーバーが POP3/IMAP プロトコルをサポートするようにする必要があります。オープンソースの dovecot はこの機能を実現できます。 Dovecot は電子メールを送信するのではなく受信する役割を果たします。それを理解することは、開発にはあまり役立ちません。完全な電子メール システム (Web ページのサポート、スパム フィルタリング、ウイルス検出、送信暗号化などを含む) を構築したい場合は、国産のオープンソース EwoMail を参照または使用することをお勧めします。
開発中に電子メールを送信する際に postfix を知ることはどの程度役立ちますか?正直に言うと、ほとんど役に立ちません。その理由は、スパムの蔓延を防ぐために、大手クラウドサーバーメーカーがポート25をブロックしているためです(Google Cloudはポート465さえブロックしています)。 Amazon Cloud はアプリケーションを通じてリリースすることができます (ただし、レートと日次割り当て制限があります)。他のベンダーでは、このマシンから直接電子メールを送信するために独自のドメイン名を使用することはほとんど許可されません。業界では、ポート 25 をブロックしてサードパーティの電子メール サービスを使用することがほぼ標準的な方法となっています。
賢い人は、暗号化されたポート 465 (SMTPS、SMTP over SSL プロトコルに基づく) またはポート 587 (SMTP over STARTTLS プロトコル) を使用して電子メールを送信すれば制限を回避できると考えるかもしれません。 Alibaba Cloud/Tencent Cloud およびその他のメーカーは、ポート 465 をブロックしません。このポートを使用して、申請せずにメールを送信できます。ただし、ポート 465 と 587 はクライアントとメール サーバー間の通信に使用されるポートであり、ポート 25 はメール サーバー間の通信に使用されることに注意してください。ポート 465 経由で Gmail メールボックスに接続して電子メールを外部に送信することはできますが、Postfix にポート 465 を使用して電子メールを Hotmail メール サーバーに配信させることはできません。
要約すると、sendmail/postfix は、スパムや詐欺メールが蔓延する前のメール サーバー ソフトウェアとして、業界に多大な貢献をしてきました。クラウド サーバーの普及により、ローカル マシンを指すドメイン名で電子メールを送信することはほとんど不可能になり、Sendmail/postfix はローカル マシン内でリマインダー メールを送信する以外にはほとんど役に立ちません。外部に電子メールを送信するには、独自のコンピューター室を構築するか、サードパーティの電子メール システムを使用する必要があります。
PHP のメール関数
PHP 開発者として、sendmail/postfix を理解することは依然として役立ちます。メール機能は、デフォルトで sendmail/postfix を使用して電子メールを送信します。関連する設定を理解していれば、機能する理由と機能しない理由がわかります。
簡単に言えば、PHP の組み込みメール機能を適切に動作させるには、次のことを行う必要があります:
ドメイン名を申請し、DNS 解決で MX レコードを設定し、ローカル マシン (非合法なホスト) をポイントします。 (FQDN、完全修飾ドメイン名)) 送信されたすべての電子メールはスパムとして直接破棄されます);
sendmail/postfix をインストールし、ソフトウェアを設定して実行します。
ファイアウォール、セキュリティ グループ、およびリリース ポートを設定します。

ホット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 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
