php 登录smtp发送邮件

$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

 

发表评论