首页 > 编程 > PHP > 正文

php编程利用fsockopen函数发送邮件

2020-03-22 18:19:31
字体:
来源:转载
供稿:网友
  • /*  fsockopen发送邮件  $to : 目标邮件地址  $username : 用户名称  by Gump http://www.it165.net/*/function sendMail($to, $username=''){	$conf = array(		'from' => 'user@domain.com',  //发信人Email地址		'user' => 'user@domain.com',  //SMTP认证帐户		'pwd' => 'xxxxxx',  //SMTP认证密码		'smtp' => 'smtp.domain.com',  //SMTP服务器地址,例如mail.gump.me	);	$subject = $username . ',fscockopen发送邮件测试';	$content = <<<EOD	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">	<html xmlns="http://www.w3.org/1999/xhtml">	<head>	<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />	</head>	<body>		<p>		$username ,您好,这是一封测试邮件,由php以fsockopen方式发送!		</p>	</body>	</html>	EOD;	$fp = @fsockopen($conf[smtp], 25, $errno, $errstr, 30);	fputs($fp, "HELO hi"."/r/n");  //和服务器打招呼(hi),可省略	fputs($fp, "AUTH LOGIN ".base64_encode($conf[user])."/r/n");	fputs($fp, base64_encode($conf[pwd])."/r/n");	fputs($fp, "MAIL FROM:"."<".$conf[from].">"."/r/n");	fputs($fp, "RCPT TO:"."<".$to.">"."/r/n");	fputs($fp, "DATA "."/r/n");	fgets($fp, 512);	$header .= "MIME-Version:1.0/r/n";	$header .= "Content-Type:text/html/r/n";	$header .= "To: ".$to."/r/n";	$header .= "From: ".$conf[from]."<".$conf[from].">/r/n";	$header .= "Subject: ".$subject."/r/n";	$header .= "Date: ".date("r")."/r/n";	fputs($fp, $header."/r/n".$content."/r/n./r/n");	fputs($fp, "QUIT "."/r/n");	$sign = FALSE;	while(!feof($fp)){		$lastmessage = fgets($fp, 512);		if(substr($lastmessage, 0, 3) != 354) {			continue;		}else{			$sign = TRUE;		}	}	fclose($fp);	return $sign;} //示例if(sendMail('admin@gump.me', 'Gump')){	echo '发送成功';}else{	echo '发送失败';}

    值得说明的是,该方法有许多局限性,若要兼容国内外各大邮件提供商的smtp服务则还要在细节上做很多完善处理,所以在生产环境中还是建议使用已封装好的phpmailerwww.it165.net

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表