php用smtp发送邮件
1.其实用smtp协议发送邮件很简单,用框架或者原生都可以,我们需要用到class.phpmailer.PHP 和class.smtp.php,大家可以去网上下载。
<!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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
</head>
<body>
<form action="mail_send.php" method="post">
<p>收件人:<input type="text" name="" /></p>
<p>标 题:<input type="text" name="title" /></p>
<p>内 容:<textarea name="content" cols="50" rows="5"></textarea></p>
<p>发件人:<input type="text" name="fromman" /></p>
<p><input type="submit" value="发送" /></p>
</form>
</body>
</html>
2、这里我们封装好了一个类(Mail.class.php)
<?php
header("content-type:text/html;charset=utf-8");
//引入原来的类文件
require 'class.phpmailer.php';
class Mail {
static public $error = '';
static public function send($title,$content,$user,$address){
$mail= new PHPMailer();
/*服务器相关信息*/
$mail->IsSMTP(); //设置使用SMTP服务器发送
$mail->SMTPAuth = true; //开启SMTP认证
$mail->Host = 'smtp.163.com'; //设置 SMTP 服务器,自己注册邮箱服务器地址 QQ则是ssl://smtp.qq.com
$mail->Username = 'zzy9i7'; //发信人的邮箱名称,本人网易邮箱 zzy9i7@163.com 这里就写
$mail->Password = '******'; //发信人的邮箱密码
/*内容信息*/
$mail->IsHTML(true); //指定邮件格式为:html *不加true默认为以text的方式进行解析
$mail->CharSet ="UTF-8"; //编码
$mail->From = 'zzy9i7@163.com'; //发件人完整的邮箱名称
$mail->FromName = $user; //发信人署名
$mail->Subject = $title; //信的标题
$mail->MsgHTML($content); //发信主体内容
//$mail->AddAttachment("15.jpg"); //附件
/*发送邮件*/
$mail->AddAddress($address); //收件人地址
//使用send函数进行发送
if($mail->Send()) {
return true;
} else {
self::$error=$mail->ErrorInfo;
return false;
}
}
}
?>
3、我们要发送邮件就需要引入这个类,然后在做一些简单的提示
<?php
// 接收值
isset($_POST['address'])?$address=$_POST['address']:$address='';
isset($_POST['titles'])?$titles=$_POST['titles']:$titles='';
isset($_POST['content'])?$content=$_POST['content']:$content='';
isset($_POST['user'])?$user=$_POST['user']:$user='';
//引入类
require 'Mail.class.php';
if( Mail::send($titles,$contents,$user,$address)){
echo "发送成功";
}else{
echo "发送失败".'<br>';
echo Mail::$error;
}
?>