今回は、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 をインストールし、ソフトウェアを設定して実行します。
ファイアウォール、セキュリティ グループ、およびリリース ポートを設定します。
以上がPHPメールの送信方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
