筆者が申請したいくつかの PHP ホームページ スペースの中で、メール機能を提供できるものは多くありません。 mail() 関数を呼び出した後は、常に何もする必要がありません。しかし、オンライン生活において電子メールの役割はますます高まっています。考えてみてください。電子メールを受信せずにインターネットをサーフィンする場合、インターネットのバグは本当のインターネットのバグと言えるでしょうか?電子メールの役割についてはこれ以上話したくないのですが、ホームページ スペースが mail() の送信をサポートしていない場合はどうすればよいでしょうか?ソケット経由でメールを送信することも考えましたが、残念ながら私は PHP を使用したソケット プログラミングに慣れていません。また、メール送信には SMTP プロトコルが必要で、大量の英語を読む必要があるため、勉強したことがありません。ついにある日、ソケット プログラミングを使用して電子メールを送信することに関する記事を見つけました。私は宝物を見つけたかのようにそれをコピーし、誰でも使用できる PHP で利用できるクラスに変換しました。元の記事は単なるサンプルであり、いくつかのエラーがありましたが、多くの実験と変更を経て、最終的には MIME を組み合わせて送信するという前の手順に従って、ソケットを直接使用して指定されたメールボックスにメールを送信するクラスに変更しました。この記事では、mail() 関数をサポートしていない Web サイトでも電子メールを送信できます。メール送信の処理には時間がかかるため、mail() の処理機構と全く同じではないため、速度は遅くなりますが、同時にメールを送信するという緊急のニーズを解決することもできます。ソケット プログラミングに PHP を使用する方法を学びます。次に、このクラスの実装原理を紹介し、同時に SMTP に関する基礎知識を説明します。
ソケット プログラミングの概要
私は TCP/IP プログラミングの専門家ではないので、ここでは私の理解と経験を共有しているだけであることを皆さんにお伝えしたいと思います。
インターネット接続を開くには fsockopen 関数を使用します。関数の構文形式は次のとおりです。
int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);ここでパラメータの意味を説明する必要があります。SMTP プロトコルが使用されるため、ポート番号は 25 です。接続が正常に開かれると、ファイル ハンドルのように使用できるソケット ハンドルが返されます。利用可能な操作には、fputs()、fgets()、feof()、fclose() などが含まれます。
超簡単な紹介は以上です。