ホームページ  >  記事  >  バックエンド開発  >  php ソケットは電子メールを送信して、電子メール アドレスの形式ではなく実際の有効性を確認します。

php ソケットは電子メールを送信して、電子メール アドレスの形式ではなく実際の有効性を確認します。

WBOY
WBOYオリジナル
2016-07-25 08:45:061056ブラウズ
  1. /*他の人の作品の成功を尊重し、この著作権情報を保管してください。ありがとうございます!
  2. 作者: Xiaoluzhu 3.3
  3. Yangfan が何かを修正しました: コメント付きのコードで指摘されていますが、このコードは qq~
  4. */
  5. set_time_limit(120);
  6. class smtp_mail
  7. {
  8. var $host に問題なく送信できるようになりました。 ; //Host
  9. var $port; //ポートは通常 25
  10. var $user; //認証パスワード
  11. var $debug = false;サーバー ?
  12. var $conn;
  13. var $result_str; //結果
  14. var $in; // 送信元メールボックス
  15. var $to; //トピック
  16. var $body; //コンテンツ
  17. function smtp_mail($host,$port,$user,$pass,$debug=false)
  18. {
  19. $this->host = $host;
  20. $this->port = $port;
  21. $this->user = Base64_encode($user);
  22. $this->pass = Base64_encode($pass);
  23. $this->debug = $debug;
  24. $this->ソケット=socket_create (AF_INET, SOCK_STREAM, SOL_TCP); //具体的な使用法についてはマニュアルを参照してください
  25. if($this->socket)
  26. {
  27. $this->result_str = "SOCKET の作成:".socket_strerror(socket_last_error( ));
  28. $this->debug_show($this->result_str);
  29. }
  30. else
  31. {
  32. exit("初期化に失敗しました。ネットワーク接続とパラメータを確認してください");
  33. }
  34. $this-> conn =socket_connect($this->socket,$this->host,$this->port);
  35. if($this->conn)
  36. {
  37. $this->result_str = "SOCKET 接続の作成:" .socket_strerror(socket_last_error());
  38. $this->debug_show($this->result_str);
  39. }
  40. else
  41. {
  42. exit("初期化に失敗しました。ネットワーク接続とパラメータを確認してください");
  43. }
  44. $this->result_str = "サーバー応答: ".socket_read ($this->socket, 1024)."";
  45. $this->debug_show ( $this->result_str);
  46. }
  47. function debug_show($str)
  48. {
  49. if($this->debug)
  50. {
  51. echo $str."

    rn";

  52. }
  53. }
  54. function send($from,$to,$subject,$body)
  55. {
  56. if($from == "" || $to == "")
  57. {
  58. exit("メールアドレスを入力してください");
  59. }
  60. if($subject == "") $sebject = "タイトルなし";
  61. if($body == "") $body = "コンテンツなし";
  62. $this->from = $from;
  63. $this ->to = $to;
  64. $this->gt;subject = $subject;
  65. $this->gt;body = $body;
  66. //Yangfan がコードの一部を変更しました
  67. $All = "From:< ;".$ this->from.">rn";
  68. $All .= "To:<".$this->to.">rn";
  69. $All .= "件名:" .$this- >subject."rnrn";
  70. $All .= $this->body;
  71. /*
  72. $All の内容を処理すると、MIME メールを送信できます
  73. ただし、たくさんのプログラム
  74. */
  75. //以下はサーバーとのセッションです
  76. $this->in = "EHLO HELOrn";
  77. $this->docommand();
  78. $this->in = "認証ログインrn";
  79. $this->docommand();
  80. $this->in = $this->user."rn";
  81. $this->docommand();
  82. $this- >in = $this- >pass."rn";
  83. $this->docommand();
  84. // $this->in = "MAIL FROM:".$this->from." rn";
  85. $this->in = "MAIL FROM:<".$this->from.">rn"; // ヤンファンが修正しました
  86. $this->docommand();
  87. // $this->in = "RCPT TO:".$this->to."rn";
  88. $this->in = "RCPT TO:to."> rn"; //帆の修正
  89. $this->docommand();
  90. $this->in = "DATArn";
  91. $this->docommand();
  92. $this->in = $ All."rn.rn" ;
  93. $this->docommand();
  94. $this->in = "QUITrn";
  95. $this->docommand();
  96. //終了、接続を閉じる
  97. }
  98. function docommand()
  99. {
  100. socket_write ($this->socket, $this->in, strlen ($this->in));
  101. $this->debug_show("クライアント コマンド: ".$this->in);
  102. $this->result_str = "サーバー応答: ".socket_read ($this->socket, 1024)." ";
  103. $this-> ;debug_show($this->result_str);
  104. }
  105. }
  106. ?>
コードをコピー

php code

  1. //テストページ
  2. include "smtp_mail.php";
  3. //このクラスを使用するときは、独自のメールボックスに変更するだけです
  4. $smtp =new smtp_mail ("smtp.qq.com","25","yourmail@qq.com","あなたのパスワード",true);
  5. //セッション情報を表示する必要がある場合は、上記を
  6. / /$smtp に変更してください= new smtp_mail("smtp.qq.com","25","あなたの qq.com アカウント","あなたのパスワード",true);
  7. $smtp->send("yourmail@qq .com","あなたのメール@qq.com","Hello","テストメール");
  8. ?>
コードをコピー

電子メールを送信する代わりに、php


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