一:环境要求
服务器支持socket(可通过phpinfo查看)
二:使用前说明
socket: Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
为什么需要socket支持:php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以使用mail函数往往无法成功发送email.如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序。(摘自百度百科)
三:引入核心类:
下载PHPMailer ,引入“phpmailer.class.php"
四:获取SMTP 授权码(以163为例)
点开顶部导航条的“设置”,选择左侧的“客户端授权密码”,进行授权。
五:最基础的配置
$mail = new PHPMailer(); //建立邮件发送类
$address = $_POST['address'];
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->CharSet='UTF-8';// 设置邮件的字符编码
$mail->Host = "smtp.163.com"; // 您的企业邮局域名(以163为例)
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Port = "25"; //SMTP端口(默认就是25)
$mail->Username = '******@163.com'; // 邮局用户名(请填写完整的email地址)
$mail->Password = "*******"; // 邮局密码(这就是刚才的授权码)
$mail->From = '*******@163.com'; //邮件发送者email地址
$mail->FromName = "发件人的姓名";
$mail->AddAddress("", "");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddAttachment("附件的路径"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail->Subject = "PHPMailer测试邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
六:发送
if(!$mail->Send())
{
echo "邮件发送失败. <p>";
echo "错误原因: " . $mail->ErrorInfo;
exit;
}
echo "邮件发送成功";
在phpmailer.class.php里面还有很多可配置的项可以选择,根据需要自己选择,另外PHPMailer版本更新,下载的插件可能不一样,我当前用的这个插件展开是这个样子的: