PHP で Socket を使用してメールを送信する (3)
Jun 21, 2016 am 09:14 AMメール送信処理
以下が本當(dāng)の秘密ですが、よく見(jiàn)てください。 :)
---------------------------------------------- --- ----------------------------------
1 関數(shù) send( $to,$from,$subject ,$message )
2 {
3
4 //サーバーに接続します
5 $this->lastact="connect";
6
7 $this->show_debug("SMTP サーバーに接続します : ".$ this->smtp , "out");
8 $this->fp = fsockopen ( $this->smtp, $this->port );
9 if ( $this->fp )
10 {
11
12 set_socket_blocking( $this->fp, true );
13 $this->lastmessage=fgets($this->fp,512);
14 $this->show_debug($this- >lastmessage, " in");
15
16 if (! ereg ( "^220", $this->lastmessage ) )
17 {
18 return false;
19 }
20 else
21 {
22 $this-> lastact="HELO " . $this->ようこそ . "n";
23 if(!$this->do_command($this->lastact, "250"))
25 fclose($this ->fp);
26 return false;
27 }
28
29 $this->lastact="MAIL FROM: $from" . "n";
30 if(!$this- >do_command($ this->lastact, "250"))
31 {
32 fclose($this->fp);
33 return false;
34 }
35
36 $this->lastact= "RCPT TO: $ to" . "n";
37 if(!$this->do_command($this->lastat, "250"))
38 {
39 fclose($this->fp) ;
40 return false ;
41 }
42
43 //テキストを送信
44 $this->lastat="DATAn";
45 if(!$this->do_command($this->lastact, " 354"))
46 {
47 fclose($this->fp);
48 return false;
49 }
50
51 //件名ヘッダーを処理します
52 $head="Subject: $subjectn";
53 if(!empty( $subject) && !ereg($head, $message))
54 {
55 $message = $head.$message;
56 }
57
58 //ヘッダーからの処理
59 $head ="From: $fromn ";
60 if(!empty($from) && !ereg($head, $message))
61 {
62 $message = $head.$message;
63 }
64
65 //ヘッダーへの処理
66 $head="To: $ton";
67 if(!empty($to) && !ereg($head, $message))
68 {
69 $message = $head.$ message;
70 }
71
72 //終了文字列を追加
73 if(!ereg("n.n", $message))
74 $message .= "n.n";
75 $this->show_debug($ message, "out") ;
76 fputs($this->fp, $message);
77
78 $this->lastact="QUITn";
79 if(!$this->do_command($ this->lastact, "250"))
80 {
81 fclose($this->fp);
82 return false;
83 }
84 }
85 return true;
86 }
87 else
88 {
89 $this- >show_debug("接続失敗!", "in");
90 return false;
91 }
92 }
----------------- ------ -------------------------------------------- ------ -------
あまり明確な意味を持つことは言いません。
この関數(shù)には合計(jì)4つのパラメータがあり、$toは受信者を表し、$fromは送信者を表し、$subjectはメールの件名を表し、$messageはメールの本文を表します。処理が成功した場(chǎng)合は true を返し、失敗した場(chǎng)合は false を返します。
8行目、メールサーバーに接続します。成功した場(chǎng)合、応答コードは220になります。
12 行目はブロック モードを設(shè)定し、続行するには情報(bào)を返す必要があることを示します。詳細(xì)な手順についてはマニュアルを參照してください。
16 行目、応答コードが 220 であるかどうかを判斷し、220 である場(chǎng)合は処理を続行します。そうでない場(chǎng)合はエラーが返されます。
22 ~ 27 行目、HELO 命令の処理、予期される応答コードは 250 です。
29 ~ 34 行目、MAIL FROM 命令の処理、予期される応答コードは 250 です。
36 ~ 41 行目、RCPT TO 命令の処理、予期される応答コードは 250 です。
44 ~ 49 行目、DATA コマンドの処理、予期される応答コードは 354 です。
51 ~ 76 行目で電子メールの本文を生成し、送信します。
52~56行目、$subjectが空でない場(chǎng)合はメール本文に件名部分があるかどうかを確認(rèn)し、ない場(chǎng)合は件名部分を追加します。
59~63行目、$fromが空でない場(chǎng)合、メール本文に送信者部分があるかどうかを確認(rèn)し、存在しない場(chǎng)合は送信者部分を追加します。
66~70行目、$toが空でない場(chǎng)合、メール本文に受信者部分があるかどうかを確認(rèn)し、存在しない場(chǎng)合は受信者部分を追加します。
73~74行目、メール本文に終了行があるかどうかを確認(rèn)し、ない場(chǎng)合はメール本文の終了行を追加します(特殊行として「.」を別行として追加)。
76行目、メール本文を送信します。
78 ~ 83 行目、QUIT を?qū)g行してサーバーとの接続を終了します。予期される応答コードは 250 です。
85行目、処理成功フラグ(true)を返します。
81~91行目、サーバーへの接続失敗の処理。
上記は send_mail クラス全體の実裝ですが、難しいことではありません。

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover
寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

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

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質(zhì)はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質(zhì)はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結(jié)果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Windows 11 で Snipping Tool が機(jī)能しない理由 問(wèn)題の根本原因を理解すると、適切な解決策を見(jiàn)つけるのに役立ちます。 Snipping Tool が正しく動(dòng)作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開(kāi)かなくなります。破損したアプリケーション: 起動(dòng)時(shí)にスニッピング ツールがクラッシュする場(chǎng)合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競(jìng)合する可能性があります。証明書(shū)の有効期限が切れています: アップグレード プロセス中のエラーにより、この問(wèn)題が発生する可能性があります。これらの簡(jiǎn)単な解決策は、ほとんどのユーザーに適しており、特別な技術(shù)知識(shí)は必要ありません。 1. Windows および Microsoft Store アプリを更新する

vue3 は、Element-plus を使用してメッセージ環(huán)境を呼び出します: vue3+typescript+element-plus1。Element のグローバルな導(dǎo)入後、Element は app.config.globalProperties にグローバル メソッド $message を追加したため、mounted(){( thisasany) を optionsAPI で直接 $message.success("this.$message");}2. CompositionAPI では、setup メソッドは 2 つの変數(shù) props と props を渡します。

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認(rèn)する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問(wèn)題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動(dòng)作しているかどうかを確認(rèn)してください。問(wèn)題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認(rèn)します?!窤ppStore に接続できません」問(wèn)題は接続不良が原因である場(chǎng)合があるため、安定したインターネット接続があることを確認(rèn)してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設(shè)定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設(shè)定のリセット] > [設(shè)定])。 iOS バージョンを更新します。

php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出而不是在空白頁(yè)彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁(yè)彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

この記事は、vue ソース コードを解釈するのに役立ち、これを使用して Vue2 のさまざまなオプションのプロパティにアクセスできる理由を紹介します。

iPadOS 17.4 で iPad のバッテリー壽命を最適化する方法 バッテリー壽命の延長(zhǎng)はモバイル デバイス エクスペリエンスの鍵であり、iPad がその良い例です。 iPad のバッテリーの消耗が早すぎると感じても、心配しないでください。iPadOS 17.4 には、デバイスの実行時(shí)間を大幅に延長(zhǎng)できるトリックや微調(diào)整が多數(shù)あります。この詳細(xì)なガイドの目的は、情報(bào)を提供するだけではなく、iPad の使用方法を変え、全體的なバッテリー管理を強(qiáng)化し、充電せずにデバイスをより長(zhǎng)く使用できるようにすることです。ここで概説したプラクティスを採(cǎi)用することで、個(gè)人のニーズや使用パターンに合わせてテクノロジーをより効率的かつ意識(shí)的に使用するための一歩を踏み出すことができます。主要なエネルギー消費(fèi)者を特定する

Watch4proとgtはそれぞれ特徴や適用シーンが異なりますが、総合的な機(jī)能、高性能、スタイリッシュな外観を重視し、価格は高くてもいいという方にはWatch 4 Proの方が適しているかもしれません。高度な機(jī)能要件はなく、バッテリー壽命と手頃な価格を重視する場(chǎng)合は、GT シリーズの方が適しているかもしれません。最終的な選択は、個(gè)人のニーズ、予算、好みに基づいて決定する必要がありますが、購(gòu)入する前に自分のニーズを慎重に検討し、さまざまな製品のレビューや比較を參照して、より情報(bào)に基づいた選択を行うことをお?jiǎng)幛幛筏蓼埂?/p>
