ホームページ バックエンド開発 PHPチュートリアル aphex Twin php Win環境でメールを送信するためのソケットメソッド

aphex Twin php Win環境でメールを送信するためのソケットメソッド

Jul 29, 2016 am 08:40 AM

コードをコピーします コードは次のとおりです:

? & Lt;? PHP

/*
* PHP SMTP メール送信 SCOKET クラス
* zhozphpsmtpsendmail.php
* 2008/09/02 zhoz.com で作成
@author zhoz
* v 1.72 2008/09/26 zhoz .Com
*/
class ZhozPhpSmtpSendMail {
//SMTP サーバープロバイダー (ドメイン名または IP アドレスにすることができます)
var $smtp = "";
//SMTP には認証が必要です。認証は必要ありません。値は 0 です。現在、ほとんどの SMTP サービス プロバイダーでは検証が必要です。不明な場合は、SMTP サービス プロバイダーにお問い合わせください。
var $check = 1;
//あなたのメールアカウント名
var $username = "";
//あなたのメールパスワード
var $password = "";
//このメールは送信サーバーのメールアドレスにある必要があります
var $s_from = "";
/*
* 機能: メール送信の初期設定
* $from あなたのメールは直志からのものですか?
* $password あなたのメールパスワード
* $smtp あなたの SMTP サーバープロバイダードメイン名または IP アドレス
* $check SMTP は認証が必要です。値を 1 に設定します。認証は必要ありません。値を 0 に設定します。ほとんどの SMTP サービス プロバイダーは検証を必要とします
*/
function ZhozPhpSmtpSendMail ( $from, $password , $smtp, $check = 1 ) {
if( preg_match("/^[^d-_][w-]*[^-_]@[^-][a-zA-Zd-]+ [^ -](.[^-][a-zA-Zd-]*[^-])*.[a-zA-Z]{2,3}/", $from ) ) {
$this- >ユーザー名 = substr( $from, 0, strpos( $from , "@" ) );
$this->パスワード = $smtp = $smtp; smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* 関数: メールを送信先のメールに送信
* $from ソースメール
* $subject メールのタイトル
* $message メールの内容
*/
function zhoz_send ($to, $from, $subject, $message) {
//サーバーに接続
$fp = fsockopen ( $this->smtp , 25, $errno, $errstr, 60);
if (!$fp ) return "サーバーに接続できませんでした".__LINE__;
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "エラー メッセージ 1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME"
if($this->check = = "1") $lastact="EHLO ".$yourname."rn";
else $lastact="HELO ".$yourname."
fputs($fp, $lastact); fgets ($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "エラー メッセージ 2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp) , 512);
if ( (substr($lastmessage,3,1) != "-") または (emptyempty($lastmessage)) )
break;
//Authentication
if ($this->check == "1") {
//認証開始
$lastat="AUTH LOGIN"."rn";
$lastmessage = fgets ($fp,512); substr($lastmessage,0,3) != 334) return "エラー メッセージ 3:$lastmessage".__LINE__
//ユーザー名
$lastact=base64_encode($this->username)."rn"; ( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "エラー メッセージ 4:$lastmessage"
/ /ユーザーパスワード
$lastact=base64_encode($this->password)."rn";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512); ,0,3) != "235") "エラー メッセージ 5:$lastmessage".__LINE__;
//FROM:
$lastact="MAIL FROM: <" 。 >rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "エラー メッセージ 6:$ lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp, 512);
if (substr($lastmessage,0,3) != 250) return "エラー メッセージ 7:$lastmessage".__LINE__;
$lastact="DATArn"; lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "エラー メッセージ 8:$lastmessage"
//件名ヘッダーを処理しています
$head="件名: $subjectrn";
$message = $head."rn".$message;
//ヘッダーからの処理
$head="From: $fromrn"; ;
//ヘッダーへの処理
$head="To: $torn";
$message = $head.$message;
$message .= "rn.rn";メッセージ
fputs($fp, $message);
$lastat="QUITrn";
error_log("送信----->ok!!", 0); true を返す;
}
}
?>
/*
* php smtp メール送信 Scoket クラス
* ZhozPhpSmtpSendMail.php
* 2008/09/02 に作成 zhoz.com
* @author zhoz
* v 1.72 更新 2008/09/26 zhoz.Com
*/
class ZhozPhpSmtpSendMail {
//SMTP サーバー プロバイダー (ドメイン名または IP アドレスにすることができます)
var $smtp = ""
//SMTP には ID が必要です。認証値は 1 に設定され、認証が必要ない場合は 0 になります。不明な場合は、SMTP サービス プロバイダーに問い合わせてください。
var $check = 1;
//あなたのメールアカウント名
var $username = "";
//あなたのメールパスワード
var $password = "";
//このメールは送信サーバーのメールアドレスにある必要があります
var $s_from = "";
/*
* 機能: メッセージ送信の初期化設定
* $from 送信サーバー上のメール アドレス
* $password メールのパスワード
* $smtp SMTP サーバー プロバイダー、ドメイン名にすることができますまたは IP アドレス
* $check SMTP は認証が必要です。値を 1 に設定します。認証は必要ありません。値は 0 です。ほとんどの SMTP サービス プロバイダーは検証を必要とします
*/
function ZhozPhpSmtpSendMail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^d-_][w-]*[^-_]@[^-][a-zA-Zd-]+[^- ](. [^-][a-zA-Zd-]*[^-])*.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->パスワード = $smtp = $smtp : $this->smtp ; this->check = $check;
$this->s_from = $from;
}
}
/*
* 関数: メールを送信
* $ターゲットメールに送信
* $from ソースメール
* $subject email title
* $message email content
*/
function zhoz_send ($to, $from, $subject, $message) {
//サーバーに接続
$fp = fsockopen ( $this->smtp, 25, $errno , $errstr, 60);
if (!$fp ) return "サーバーに接続できませんでした".__LINE__;
$lastmessage=fgets($fp,512); ($lastmessage,0,3) != 220 ) return "エラー メッセージ 1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME"
if($this->check == "1"; ) $lastact="EHLO ".$yourname."rn";
else $lastact="HELO ".$lastact";
$lastmessage == fgets($fp) ,512);
if (substr($lastmessage,0,3) != 220 ) return "エラー メッセージ 2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
//Authentication
if ($this->check==" 1 ") {
//検証開始
$lastat="AUTH LOGIN"."rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($ lastmessage ,0,3) != 334) return "エラー メッセージ 3:$lastmessage".__LINE__;
//ユーザー名
$lastact=base64_encode($this->username)."rn"; $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "エラー メッセージ 4:$lastmessage"
//ユーザー パスワード
$lastact=base64_encode($this->password)."rn";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512); ) != "235") return "エラー メッセージ 5:$lastmessage".__LINE__;
//FROM:
$lastact="MAIL FROM: >rn " ;
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) __LINE__ を返します。 ;
//TO:
$lastat="RCPT TO: <$to .">
fputs($fp, $lalastact); if (substr($lastmessage,0,3) != 250) return "エラー メッセージ 7:$lastmessage".__LINE__
//DATA
$lastact="DATArn"; $lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "エラー メッセージ 8:$lastmessage".__LINE__
//件名ヘッダーを処理しています
$head= " Subject: $subjectrn";
$message = $head."rn".$message;
//ヘッダーからの処理
$head="From: $fromrn";
$message = $head.$message;
/ /ヘッダーへの処理
$head="To: $torn";
$message = $head.$message
// 終了文字列を追加
$message .= "rn.rn";
fputs ( $fp, $message);
$lastat="QUITrn";
error_log("送信----->ok!!", 0); }
}
?>
テスト方法は同じです。
コードを実行してコードを表示する コードをコピーして印刷する About
/**
* ZhozPhpSmtpSendMail.php
* 2008/09/02 zhoz.com で作成
* php smtp send mail クラス
* mail() を置き換えます: エラーが報告されるため、置き換えたくありません
*/
// ここで送信サーバーの情報を設定します。 変更しなければ通常通り使用できます。
$from = 'zhoz@zhoz.com' // 送信サーバーのメール
$password = 'zhoz' // メールのパスワード
$smtp = 'smtp.zhoz.com';プロバイダー。ドメイン名または IP アドレスにすることができます
// クラスの初期化
$zhoz_obj = new ZhozPhpSmtpSendMail($from, $password, $smtp);
// 送信を開始します
$status = $zhoz_obj->zhoz_send("zhoz008 @126.com", "zhoz@zhoz.com", "件名はzhoz", "本文はzhoz.com");
if($status) {
echo $status;
echo "no----- ----";
} else {
echo "send ok-----------------!";
die;
}
// 結果はもちろん次のようになります: sendわかりました - - - - - - - - !
?>



以上、Win 環境でメールを送信するための aphex Twin の php ソケットメソッドを紹介しました。これは、PHP チュートリアルに興味のある友人の参考になれば幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles