用Socket發送電子郵件(七)

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 . ”
“;
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” . ”
“;

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” . ”
“;
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
“;
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
“;
45 if(!empty($subject) && !ereg($head, $message))
46 {
47 $message = $head.$message;
48 }
49 //處理From頭
50 $head=”From: $from
“;
51 if(!empty($from) && !ereg($head, $message))
52 {
53 $message = $head.$message;
54 }
55 //處理To頭
56 $head=”To: $to
“;
57 if(!empty($to) && !ereg($head, $message))
58 {
59 $message = $head.$message;
60 } <

You May Also Like