扩展库

多个模块发布

邮件发送类

功能说明:

PHPMailer 是一个非常强大的PHP发送邮件类库,可以设定发送邮件地址、回复地址、邮件主题、html网页、上传附件等等,并且使用起来非常方便。

特点:

1、在邮件中包含多个 TO、CC、BCC 和 REPLY-TO。
2、平台应用广泛,支持的 SMTP 服务器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。
3、支持嵌入图像,附件,HTML 邮件。
4、可靠的强大的调试功能。
5、支持 SMTP 认证。
6、自定义邮件头。
7、支持 8bit、base64、binary 和 quoted-printable 编码。

下载使用:

下载并解压到extend护展目录

<?php

$mail = new \Smtp\Smtp('smtp.126.com', 'test@126.com', 'password');
$mail->send('标题:Smtp发送测试', '<h2>内容:</h2><p>Smtp.php powered by startmvc</p>', '852510@qq.com');

使用前注意:

PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的, PHP 还得包含 openssl 的支持。使用phpinfo()查看是否支持这两个扩展。


使用前确保邮箱开启pop/smtp设置,对于126,163,qq邮箱需要设授权码,这个授权码就是smtp的密码。

原生使用说明(方法1):

加载类

use Mail\PHPMailer;
或者
$mail = new \Mail\PHPMailer();参

案例说明

use Mail\PHPMailer;

// 实例化PHPMailer核心类
$mail = new PHPMailer();                              
try {
    //服务器设置
    $mail->CharSet ="UTF-8"; //设定邮件编码 
    $mail->SMTPDebug = 1; // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
    $mail->isSMTP(); // 设置使用SMTP服务
    $mail->Host = 'smtp.126.com'; //SMTP服务器
    $mail->SMTPAuth = true; //启用SMTP验证,这个必须是true
    $mail->Username = 'user1@126.com';	// smtp登录的账号
    $mail->Password = '8888888888'; // 设置发件人邮箱密码或授权码
    $mail->SMTPSecure = 'ssl'; // 设置ssl连接smtp服务器的远程服务器端口号(也支持TLS加密)
    $mail->Port = 465; // 要连接的TCP端口号
	
	//收件人信息
	$mail->setFrom('user2@126.com', 'user1'); //设置发件人邮箱地址及名字
	$mail->addAddress('666666666@qq.com', 'user2'); // 收件人信息
	//$mail->addAddress('user3@example.com'); // 再添加一个收件人,其中user4及名字可以不写
	//$mail->addReplyTo('user4@example.com', 'user4'); 
	// $mail->addCC('cc@example.com');//抄送
	// $mail->addBCC('bcc@example.com');
	//Attachments(附件)
	//$mail->addAttachment('/var/tmp/file.tar.gz');         // 添加一个附件文件在服务器上的完整路径
	// $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // 文件名选项
	
	//邮件内容
	$mail->isHTML(true); //启用html格式
	$mail->Subject = '开发测试startmvc'; // 邮件标题
	$mail->Body    = '开发测试startmvc。This is the HTML message body <b>in bold! from startmvc</b>'; //邮件内容(可以使用html标签)
	// $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
	$mail->send();
	echo '邮件成功发出!';
} catch (Exception $e) {
    var_dump($mail->ErrorInfo); // 具体报错信息
}$this->mail->CharSet ="UTF-8";

快速使用(方法2)

我们对phpmailer做了一个封装类,使用起来更简洁,使用方法如下

加载类库

use Mail\Mail;

或直接实例化引用

$mail= new \Mail\mail($config);

使用方法

$mail = new \Mail\Mail($config);
$res=$mail->send($to,$submit,$content,$attach);
//$to为收件人,可以单个,也可以多个(数组)
//$to='22321312@qq.com';或者$to=array('22321312@qq.com','test@126.com');
//$attach,支持单个或多个文件(数组形式)

实例演示

$config=[
	'is_debug'=>0,	//0-不启用debug,1-启用debug
	'is_smtp'=>1,	//是否使用SMTP服务
	'host'=>'smtp.126.com',	//是否启用SMTP验证
	'smtp_auth'=>true,	//是否启用SMTP验证
	'username'=>'test@126.com',	//发件人
	'password'=>'88888888',	//smtp密码或授权码
	'secure'=>'ssl',	//SMTP 使用加密协议有:25,25-STARTTLS,465-SSL,587-TLS/STARTTLS
	'port'=>'465',	//SMTP 使用的端口有:25,25-STARTTLS,465-SSL,587-TLS/STARTTLS
	'is_html'=>true,	//是否使用html格式
];
$mail = new \Mail\Mail($config);
$res=$mail->send($to,'这是一个标题','这是要发送的内容<b>startmvc</b>');
echo $res?'成功发送':'发送失败';

//$res返回true或false
//实际应用中,$config中的数据可以存到config文件或数据库中。
下载类库 (大小:48k)(更新时间:2020-02-11 09:12:59)