検索
ホームページphp教程php手册ソケットを使用して電子メールを送信する

PHP ホームページスペースは、mail 機能を提供できます。多くはありませんが、mail() 関数を呼び出した後は常に何もすることがありません。しかし、オンライン生活において電子メールの役割はますます高まっています。考えてみてください。電子メールを受信せずにインターネットをサーフィンする場合、インターネットのバグは本当のインターネットのバグと言えるでしょうか?メールの役割についてはもう話したくないのですが、ホームページスペースがmail()送信をサポートしていない場合はどうすればよいでしょうか? socket経由でメールを送ることも考えましたが、php 私は socket プログラミングに詳しくありません。また、電子メールを送信するには、SMTP プロトコルを使用する必要があります。 では読めません 私は英語の が少ないので勉強したことがありません。ついにある日、socket を使用して電子メールを送信するプログラミングに関する記事を見つけました。私は宝物を見つけたかのようにそれをコピーし、誰もが使用できる php クラスに変換しました。元の記事は単なるサンプルであり、いくつかの間違いがあり、何度も実験と修正を行った結果、最終的には socket を組み合わせて指定する方法に変更しました。 MIME の送信に関する前回の記事でメールボックスでメールを送信するクラスを参照すると、mail()関数ウェブサイト上で電子メールを送信するため。メール送信の処理には時間がかかるため、mail()の処理機構と全く同じではないため、速度は遅くなりますが、緊急のニーズを解決できます同時に、php socketプログラミング。次に、このクラスの実装原理を紹介するとともに、SMTP に関する基礎知識を説明します。 ソケット
プログラミング入門

私は TCP/IP プログラミングの専門家ではありません。なので 私のほんの少しの理解と経験です。

fsockopen 関数を使用して インターネットを開きます接続、関数構文形式:

int fsockopen(string hostname, int port) 、int [errno]、文字列 [errstr]、int [タイムアウト]);
ここでは
SMTP プロトコルが使用されているため、ポート番号は 25 です。 。接続が正常に開かれると、ソケット ハンドルが返されます。これは、ファイル ハンドルを使用する と同じように 使用できます。使用可能な操作は、fputs()fgets()feof()fclose()など。 SMTP の基礎


TCP /IP
インターネット特殊一般的なコマンド形式は、テキスト情報を使用する request/ 応答メソッドを通じて実装されます。加工しやすくなります。 SMTP は、Simple Mail Transfer Protocol の略称で、クライアントがサーバーに電子メールを送信できるようにします。したがって、以下で説明するコマンドは、クライアントがサーバーに要求命令を送信することを指し、応答はサーバーからクライアントに返される情報を指します。 SMTP は、コマンドヘッダーとメッセージボディの 2 つの部分に分かれています。コマンド ヘッダーは主に でクライアントとサーバー間の接続、検証などを完了します。プロセス全体は複数のコマンドで構成されます。各コマンドがサーバーに送信されると、サーバーは応答情報 (通常は 3 桁の応答コードと応答テキスト) を返します。さまざまなサーバーから返される応答コードはプロトコルに準拠していますが、応答テキストはプロトコルに準拠していません。各コマンドと応答の最後には復帰があるため、fputs() および を使用します。 fgets() はコマンドと応答を処理できます。 SMTP のコマンドと応答メッセージはすべて 1 行です。メッセージ本文はメールの本文であり、最後の終了行は終了行として別の "." である必要があります。

クライアントで一般的に使用される SMTP コマンドは次のとおりです。

HELO ホスト名:
サーバーに挨拶し、使用したマシン名をクライアントに伝えます。気軽に入力できます
MAIL FROM: sender_id :
送信者のアドレスをサーバーに伝えます
RCPT TO: receiver_id :
受信者のアドレスをサーバーに伝えます。 Address
DATA:
はレターの内容の送信を開始し、のみを含むことで終了します。 . 特殊行の終わり
RESET:
前のコマンドをキャンセルして最初からやり直します
VERIFY userid:
アカウント が存在するかどうかを確認します (このコマンドはオプションであり、サーバーがサポートしていない可能性があります)
QUIT:
接続を終了し、終了します
サーバーから返される応答情報は (形式は次のとおりです: 応答コード+スペース +説明):

220
サービス準備完了(ソケット接続が成功すると、この情報が返されます )
221
処理中
250
要求された電子メール アクションは正しく、完了しました( HELO,MAIL FROM,RCPT TO,QUIT このメッセージは、コマンドが正常に実行された場合に返されます )
354
が開始しますデータを送信し、 で終了します。(DATA この情報は、コマンドが正常に実行された場合に返されます。クライアントは情報 を送信する必要があります)
500
構文エラー、コマンドが認識されません
550
コマンドを実行できません。電子メールが無効です
552
割り込み処理: ユーザーがファイル容量を超えました



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

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