用Socket发送电子邮件(七)
3649 点击·0 回帖
![]() | ![]() | |
![]() | b>邮件发送处理 下面是真正的秘密了,可要看仔细了。:) 1 function send( $to,$from,$subject,$message) 2 { 3 //连接服务器 4 $this-$#@62;lastact="connect"; 5 $this-$#@62;show_debug("Connect to SMTP server : ".$this-$#@62;smtp, "out"); 6 $this-$#@62;fp = fsockopen ( $this-$#@62;smtp, $this-$#@62;port ); 7 if ( $this-$#@62;fp ) 8 { 9 set_socket_blocking( $this-$#@62;fp, true ); 10 $this-$#@62;lastmessage=fgets($this-$#@62;fp,512); 11 $this-$#@62;show_debug($this-$#@62;lastmessage, "in"); 12 if (! ereg ( "^220", $this-$#@62;lastmessage ) ) 13 { 14 return false; 15 } 16 else 17 { 18 $this-$#@62;lastact="HELO " . $this-$#@62;welcome . "\n"; 19 if(!$this-$#@62;do_command($this-$#@62;lastact, "250")) 20 { 21 fclose($this-$#@62;fp); 22 return false; 23 } 24 $this-$#@62;lastact="MAIL FROM: $from" . "\n"; 25 if(!$this-$#@62;do_command($this-$#@62;lastact, "250")) 26 { 27 fclose($this-$#@62;fp); 28 return false; 29 } 30 $this-$#@62;lastact="RCPT TO: $to" . "\n"; 31 if(!$this-$#@62;do_command($this-$#@62;lastact, "250")) 32 { 33 fclose($this-$#@62;fp); 34 return false; 35 } 36 //发送正文 37 $this-$#@62;lastact="DATA\n"; 38 if(!$this-$#@62;do_command($this-$#@62;lastact, "354")) 39 { 40 fclose($this-$#@62;fp); 41 return false; 42 } 43 //处理Subject头 44 $head="Subject: $subject\n"; 45 if(!empty($subject) ;; !ereg($head, $message)) 46 { 47 $message = $head.$message; 48 } 49 //处理From头 50 $head="From: $from\n"; 51 if(!empty($from) ;; !ereg($head, $message)) 52 { 53 $message = $head.$message; 54 } 55 //处理To头 56 $head="To: $to\n"; 57 if(!empty($to) ;; !ereg($head, $message)) 58 { 59 $message = $head.$message; 60 } < | |
![]() | ![]() |