> 백엔드 개발 > PHP 튜토리얼 > php 소켓은 형식이 아닌 이메일 주소의 실제 유효성을 확인하기 위해 이메일을 보냅니다.

php 소켓은 형식이 아닌 이메일 주소의 실제 유효성을 확인하기 위해 이메일을 보냅니다.

WBOY
풀어 주다: 2016-07-25 08:45:06
원래의
1080명이 탐색했습니다.
  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 $pass; //인증 비밀번호
  12. var $debug = false; //서버와의 세션 정보를 표시하시겠습니까?
  13. var $conn;
  14. var $result_str; //결과
  15. var $in; //클라이언트가 보낸 명령
  16. var $from; //소스 메일함
  17. var $to; 대상 메일함
  18. var $subject; //제목
  19. var $body; //Content
  20. function smtp_mail($host,$port,$user,$pass,$debug=false)
  21. {
  22. $this->host = $host;
  23. $this->port = $port;
  24. $this->user = base64_encode($user);
  25. $this-> = base64_encode($pass);
  26. $this->debug = $debug;
  27. $this->socket = 소켓_create (AF_INET, SOCK_STREAM, SOL_TCP) //구체적인 사용법은 매뉴얼을 참조하세요
  28. if($this->socket)
  29. {
  30. $this->result_str = "소켓 생성:".socket_strerror(socket_last_error());
  31. $this->debug_show($this -> ;result_str);
  32. }
  33. else
  34. {
  35. exit("초기화에 실패했습니다. 네트워크 연결 및 매개변수를 확인하십시오.");
  36. }
  37. $this->conn = 소켓_연결($this->socket,$this->host,$this->port);
  38. if($this->conn)
  39. {
  40. $this->result_str = "SOCKET 연결 생성:".socket_strerror(socket_last_error());
  41. $this->debug_show($this->result_str);
  42. }
  43. else
  44. {
  45. exit( " 초기화에 실패했습니다. 네트워크 연결 및 매개변수를 확인하세요.");
  46. }
  47. $this->result_str = "서버 응답: ".socket_read ($this->socket , 1024)."";
  48. $this->debug_show($this->result_str);
  49. }
  50. 함수 debug_show($str)
  51. {
  52. if($this->debug)
  53. {
  54. echo $str."

    rn";

  55. }
  56. }
  57. 함수 send($from,$to ,$subject,$body)
  58. {
  59. if($from == "" || $to == "")
  60. {
  61. exit("이메일 주소를 입력하세요.");
  62. }
  63. if($subject == "") $sebject = "제목 없음";
  64. if($body == "") $body = "내용 없음";
  65. $this-> ; from = $from;
  66. $this->to = $to;
  67. $this->subject = $subject;
  68. $this->body = $body;
  69. //양판 코드 일부 수정
  70. $All = "From:<".$this->from.">rn";
  71. $All .= "To:<".$ this-> ;to.">rn";
  72. $All .= "제목:".$this->subject."rnrn";
  73. $All .= $this->body;
  74. / *
  75. $All의 내용을 처리하면 MIME 이메일을 보낼 수 있습니다
  76. 하지만 여전히 많은 프로그램을 추가해야 합니다
  77. */
  78. //다음은 서버와의 대화
  79. $this->in = "EHLO HELOrn";
  80. $this->docommand();
  81. $this->in = "AUTH LOGINrn";
  82. $this- >docommand();
  83. $this->in = $this->user."rn";
  84. $this->docommand();
  85. $this ->in = $this->pass."rn";
  86. $this->docommand();
  87. // $this->in = " MAIL FROM:".$ this->from."rn";
  88. $this->in = "MAIL FROM:<".$this->from.">rn"; //양판 수정됨
  89. $this ->docommand();
  90. // $this->in = "RCPT TO:".$this->to."rn";
  91. $this ->in = " RCPT TO:<".$this->to.">rn"; // 양판 수정
  92. $this->docommand();
  93. $this ->in = " DATArn";
  94. $this->docommand();
  95. $this->in = $All."rn.rn";
  96. $this-> ;docommand();
  97. $this->in = "QUITrn";
  98. $this->docommand();
  99. //종료, 연결 종료
  100. }
  101. function docommand()
  102. {
  103. Socket_write ($this->socket, $this->in, strlen ($this->in));
  104. $this ->debug_show("고객 시스템 명령: ".$this->in);
  105. $this->result_str = "서버 응답: ".socket_read ($this-> ;소켓, 1024)." ";
  106. $this->debug_show($this->result_str);
  107. }
  108. }
  109. ?>
코드 복사

php 코드

  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"," Your qq로 변경하세요. com 계정","비밀번호",true);
  7. $smtp->send("yourmail@qq.com","yourmail@qq.com","안녕하세요"," 이메일 테스트");
  8. ?>
코드 복사

이메일을 보내는 대신 PHP


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿