PHPMailer类库下载地址
github:https://github.com/PHPMailer/PHPMailer
composer安装
composer require phpmailer/phpmailer
1、不使用ssl模式发送代码示例如下:
<?php
/**
* by yl
*/
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
$mail->SMTPAuth = true; //开启认证
$mail->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "aaaaa@163.com";
$mail->Password = "";
//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
$mail->AddReplyTo("aaa@163.com","mckee");//回复地址
$mail->From = "aaaaaa@163.com";
$mail->FromName = "www.aaa.com";
$to = "8888888888@qq.com";
$mail->AddAddress($to);
$mail->Subject = "phpmailer测试标题";
$mail->Body = "<h1>phpmail演示</h1>这是测试(<font color=red>www.phpddt.com</font>)对phpmailer的测试内容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
$mail->WordWrap = 80; // 设置每行字符串的长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo '邮件已发送';
} catch (phpmailerException $e) {
echo "邮件发送失败:".$e->errorMessage();
}
?>
2、使用ssl发送
<?php
require './vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail=new PHPMailer();
try{
//邮件调试模式
$mail->SMTPDebug = 2;
//设置邮件使用SMTP
$mail->isSMTP();
// 设置邮件程序以使用SMTP
$mail->Host = 'ssl://smtp.exmail.qq.com';
// 设置邮件内容的编码
$mail->CharSet='UTF-8';
// 启用SMTP验证
$mail->SMTPAuth = true;
// SMTP username
$mail->Username = '邮件名称';
// SMTP password
$mail->Password = '密码,QQ为登录授权码授权码';
// 启用TLS加密,`ssl`也被接受
// $mail->SMTPSecure = 'ssl';
// 连接的TCP端口
// $mail->Port = 465;
//设置发件人
$mail->setFrom('aaaa@qq.com', 'aaaa');
// 添加收件人1
$mail->addAddress('aaaaa@qq.com', 'aaaa'); // Add a recipient
// $mail->addAddress('ellen@example.com'); // Name is optional
// 收件人回复的邮箱
$mail->addReplyTo('aaaa@qq.com', 'aaa');
// 抄送
// $mail->addCC('cc@example.com');
// $mail->addBCC('bcc@example.com');
//附件
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
//Content
// 将电子邮件格式设置为HTML
$mail->isHTML(true);
$mail->Subject = '邮件主题';
$mail->Body = '邮件正文部分';
// $mail->AltBody = '这是非HTML邮件客户端的纯文本';
$mail->send();
echo 'Message has been sent';
$mail->isSMTP();
}catch (Exception $e){
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
注意事项:防火墙问题,端口问题,测试是否通信正常:telnet smtp.163com 465