1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php发送exmail邮箱 php引入PHPMailer发送邮件

php发送exmail邮箱 php引入PHPMailer发送邮件

时间:2023-12-31 11:28:53

相关推荐

php发送exmail邮箱 php引入PHPMailer发送邮件

昨天做了一个发送邮件的功能,如果直接用mail()函数,需要拥有自己的邮件服务器,所有引入PHPMailer类方便快捷,简单写一下开发步骤:

一、拥有自己的邮箱账号(作为发件人邮箱)

分两种情况:

1、如果是企业邮箱,需要用到的参数为邮箱号和密码

2、如果是个人邮箱,需要用到的参数为邮箱号和授权码(只有开启之后才能通过PHP代码,控制邮件的自动发送)

二、PHPMailer的下载

下载地址:/PHPMailer/PHPMailer

我这里是用的thinkphp 5,下载后放到vendor目录

三、封装发送邮件方法,设置相关参数

具体代码如下,这里我用的是企业邮箱,如果是个人邮箱,需更改以下几个参数值:

$mail->Host,$mail->Port,发件人邮箱密码(授权码)

/**

* Created by PhpStorm.

* User: Administrator

* Date: /10/15 0015

* Time: 13:33

*/

namespace app\common\model;

require VENDOR_PATH . 'PHPMailer/src/Exception.php';

require VENDOR_PATH . 'PHPMailer/src/PHPMailer.php';

require VENDOR_PATH . 'PHPMailer/src/SMTP.php';

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\SMTP;

use PHPMailer\PHPMailer\Exception ;

class Mail

{

//发件人邮箱

private static $_fromAddress = '***@';

//发件人邮箱登录密码(非企业邮箱为授权码)

private static $_pwd = '***';

//收件人邮箱

private static $_toAddress = '***@';

/**

* 发送邮件

* @author ZZ

* @param string $fromAddress 发件人

* @param string $pwd 发件人登录密码

* @param string $toAddress 收件人

* @param string $title 邮件题目

* @param string $content 邮件内容

* @return array

*/

public function sendMail($title,$content,$toAddress = '',$fromAddress = '',$pwd = ''){

if (empty($title) || empty($content)) {

return ['result' => false, 'msg' => '参数错误'];

}

if (empty($fromAddress)) {

$fromAddress = self::$_fromAddress;

$pwd = self::$_pwd;

}

if (empty($toAddress)) {

$toAddress = self::$_toAddress;

}

$mail = new PHPMailer();

//告诉PHPMailer使用SMTP

$mail->isSMTP();

//启用S​​MTP调试

// 0 =关闭(供生产使用)

// 1 =客户端消息

// 2 =客户端和服务器消息

$mail->SMTPDebug = 2 ;

//设置邮件服务器的主机名

$mail->Host = 'smtp.';

//使用

// $ mail-> Host = gethostbyname('');

//如果您的网络不支持SMTP over IPv6

//设置SMTP端口号 - 587用于经过身份验证的TLS,即RFC4409 SMTP提交

$mail->Port = 465;

//设置加密系统使用 - ssl(不建议使用)或tls

$mail->SMTPSecure = 'ssl';

//是否使用SMTP身份验证

$mail->SMTPAuth = true ;

//用于SMTP身份验证的用户名 - 使用gmail的完整电子邮件地址

$mail->Username = $fromAddress;

//用于SMTP身份验证的密码(企业邮箱的话为登录密码)

$mail->Password = $pwd;

//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码

$mail->CharSet = 'UTF-8';

//设置要从中发送消息的人员

$mail->setFrom($fromAddress,'***');

//设置备用回复地址

//$mail->addReplyTo('***@','腾讯');

//设置要将消息发送给谁

$mail->addAddress($toAddress,'***');

//设置主题行

$mail->Subject = $title;

//从外部文件中读取HTML邮件正文,将引用的图像转换为嵌入式图像

//将HTML转换为基本的纯文本替代正文

//$mail->msgHTML(file_get_contents(' contents.html '),__DIR__);

//用手动创建的纯文本正文替换

$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->Body = $content;

$result = $mail->send();

if (!$result) {

return ['result' => false, 'msg' => $mail->ErrorInfo];

} else {

return ['result' => true, 'msg' => '成功发送邮件消息'] ;

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。