1. 关于PHPMailer
PHP用来操作发送邮件的类库。
Github地址:https://github.com/PHPMailer/PHPMailer
2. 使用
2.1下载
首先下载类库包,直接Github下载或者通过composer都可以
2.2 使用
直接引入PHPMailerAutoload.php文件:
require '/path/to/PHPMailerAutoload.php';
然后实例化 PHPMailer() 类执行操作即可。
2.3 使用示例
官方简单示例:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // 是否输出debug信息
$mail->isSMTP(); // 设置mailer为SMTP模式
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // SMTP服务器host
$mail->SMTPAuth = true; // 启用SMTP身份验证
$mail->Username = 'user@example.com'; // SMTP用户名
$mail->Password = 'secret'; // SMTP密码
$mail->SMTPSecure = 'tls'; // 是否使用 TLS 证书,支持'ssl'
$mail->Port = 587; // TCP连接端口
$mail->setFrom('from@example.com', 'Mailer'); // 设置发件人地址
$mail->addAddress('joe@example.net', 'Joe User'); // 添加收件人地址
$mail->addAddress('ellen@example.com'); // 添加收件人时名称是可选的
$mail->addReplyTo('info@example.com', 'Information'); // 回复地址
$mail->addCC('cc@example.com'); // 添加抄送地址
$mail->addBCC('bcc@example.com'); // 添加密件抄送地址
$mail->addAttachment('/var/tmp/file.tar.gz'); // 添加附件
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // 添加带有名称的附件
$mail->isHTML(true); // 发送HTML格式的邮件
$mail->Subject = 'Here is the subject'; // 邮件标题
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; // 邮件主体内容
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息
/* 执行发送邮件 */
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
3. 提取文件
3.1 提取?
在有些时候,我们只需要用到一个简单发送邮件功能来实现一些简单的功能,或者测试某些功能,我们可以进行一个瘦身操作;这步看个人其实可以忽略。
3.2 操作
我们可以提取出PHPmailer包中的class.phpmailer.php,class.pop3.php,class.smtp.php三个文件备用(实际使用smtp发送只引入了class.smtp);
同样直接引入class.phpmailer.php就可以使用发送邮件功能。
3.3 简单示例
<?php
require '/path/to/class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8';
$mail->SMTPAuth = true;
$emailPort = '';
if ($emailPort == '465'){ // 如果使用ssl则加上
$mail->SMTPSecure = 'ssl';
}
$mail->Port = $emailPort;
$mail->Host = ''; // 邮箱smtp地址
$mail->Username = ''; // 你的邮箱账号
$mail->Password = ''; // 你的邮箱密码
$mail->From = $mail->Username; // 你的邮箱账号(发件人)
$mail->FromName = ''; // 发件人名称
$mail->AddAddress(''); // 收件人
$mail->Subject = $subject; // 标题
$mail->Body = $message; // 邮件内容
$mail->WordWrap = 80; // 设置长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true); //是否HTML格式
$mail->Send(); //执行发送
} catch (phpmailerException $e) {
// echo "邮件发送失败:".$e->errorMessage(); //测试的时候可以去掉此行的注释
}
4. 提示
PHPMailer偶尔会爆出安全性漏洞,最好保持PHPmailer时常更新,更新的安全版本状态。
5. 可能的错误
5.1 SMTP ERROR: Cound not connect to SMTP host.
连接不到SMTP服务器,首先检查SMTP服务器是否可用,比如该邮箱提供商是否支持,如果支持看看smtp是否解析;再检查用来发送邮件的端口是否被占用;以及是否发送方式出错,例如使用了ssl方式却没有配置好环境。
0 条评论
来做第一个留言的人吧!