composer require phpmailer/phpmailer
use PHPMailer\PHPMailer\PHPMailer;
public function send_email(){
//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->isSMTP();//使用SMTP服务
$mail->CharSet = "UTF-8";// 编码格式为utf8,不设置编码的话,中文会出现乱码
$mail->Host = 'smtp.qq.com';// 发送方的SMTP服务器地址
$mail->SMTPAuth = true;// 是否使用身份验证
$mail->Username = 'xxx@qq.com';// 发送方的163邮箱用户名,就是你申请163的SMTP服务使用的163邮箱
$mail->Password = 'sttsxxxkbbii';// 发送方的邮箱密码,注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码!
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //设置使用ssl加密方式登录鉴权
$mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持
//Recipients收件人信息
$mail->setFrom('', '王'); //设置发件人信息,如邮件格式说明中的发件人,这里会显示为Mailer(xxxx@163.com),Mailer是当做名字显示
$mail->addAddress('', '');// 设置收件人信息,如邮件格式说明中的收件人,这里会显示为Joe User(yyyy@163.com)
//$mail->addAddress('ellen@example.com'); // 可添加多个收件人
$mail->addReplyTo('', '王'); // 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
//$mail->addCC('cc@example.com'); //设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件)
//$mail->addBCC('bcc@example.com'); //设置秘密抄送人(这个人也能收到邮件)
//Attachments 附件
$mail->addAttachment('./morentouxiang.jpg'); // 添加附件
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // 添加附件
//Content 内容
$mail->isHTML(true); // 是否以HTML文档格式发送 发送后客户端可直接显示对应HTML内容
$mail->Subject = 'Here is the subject'; // 邮件标题
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; // 邮件正文
//$mail->AltBody = 'plain text'; // 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用
if (!$mail->send()) {// 发送邮件
echo "Message could not be sent.";
echo "Mailer Error: " . $mail->ErrorInfo;// 输出错误信息
} else {
echo '发送成功';
}
} catch (\PHPMailer\PHPMailer\Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
}