php使用smtp发送邮件(ssl链接方式, PHPMailer类)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值