$from = "lc*******@163.com"; // 发件人 $to = "***********@qq.com"; // 收件人 $subject = "this is subject"; // 邮件主题 $content = "this is content"; // 邮件内容 $smtp = 'smtp.163.com'; // 163 smtp服务器 $fp = fsockopen($smtp, 25, $errno, $errstr, 60); if(!$fp){ return '邮件服务器连接失败...'; } // 获取信息 $lastmessage = fgets($fp, 512); print_r("连接状态:" . $lastmessage . '<br>'); // 220 163.com Anti-spam GT for Coremail System (163com[20121016]) // HELO // 和服务器握手 $lastact = "HELO luchg \r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r("握手结果" . $lastmessage . '<br>'); //250 OK // 身份验证 $lastact = "AUTH LOGIN \r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r("验证结果" . $lastmessage . '<br>'); // 334 dXNlcm5hbWU6 返回334表示需要输入用户名和密码 // 用户名 $lastact = base64_encode("lc448986375@163.com") . "\r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); // 密码 $lastact = base64_encode("保密") . "\r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r("登录结果" . $lastmessage . '<br>'); // Authentication successful 用户验证成功 // 发件人 $lastact = "MAIL FROM:<$from>" . "\r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r($lastmessage . '<br>'); // 收件人 $lastact = "RCPT TO:<$to>" . "\r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r($lastmessage . '<br>'); // 250 Mail OK // DATA $lastact = "DATA" . "\r\n"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r("data" . $lastmessage . '<br>'); // 250 Mail OK // 发送主题 // 主题后面要换行 与邮件内容分开 $lastact = "Subject:$subject" . "\r\n"; fputs($fp, $lastact); // 发送内容 // 内容前面要加入换行与主题分开 // 内容后用“.”号表示DATA结束 $lastact = "\r\n" . "$content" . "\r\n.\r\n"; fputs($fp, $lastact); // 354 End data with . // 退出 $lastact = "QUIT"; fputs($fp, $lastact); $lastmessage = fgets($fp, 512); print_r("发送结果" . $lastmessage . '<br>'); //250 Mail OK queued as smtp4,DtGowED5vklbAGFS2yoLBA--.583S2 1382088796