1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php 发邮件 上传附件 PHPMailer实现PHP的邮件发送 附带附件

php 发邮件 上传附件 PHPMailer实现PHP的邮件发送 附带附件

时间:2024-01-16 01:42:18

相关推荐

php 发邮件 上传附件 PHPMailer实现PHP的邮件发送 附带附件

phpMailer 是一个非常强大的 ph p发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。

phpMailer 的特点:

1、在邮件中包含多个 TO、CC、BCC 和 REPLY-TO。

2、平台应用广泛,支持的 SMTP 服务器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。

3、支持嵌入图像,附件,HTML 邮件。

4、可靠的强大的调试功能。

5、支持 SMTP 认证。

6、自定义邮件头。

7、支持 8bit、base64、binary 和 quoted-printable 编码。

phpmailer 安装或者下载方式:

1、从 github 上下载:/PHPMailer/PHPMailer/

2、使用 composer 安装:

composer require phpmailer/phpmailer

发送之前需要拥有自己的邮件服务器,测试的时候其实用自己申请的免费邮箱最方便了,不需要自己再搭建服务器了,可能要配置邮箱的SMTP服务,大部分公共邮箱(163、qq等)为了安全默认是关闭的。

网易邮箱配置如下图:

QQ 邮箱相关配置如下图:

邮箱POP3服务器(端口995) SMTP服务器(端口465或587)

当然除了网易和 QQ 邮箱其他邮箱也是可以的,下面给出 php 代码示例:

/**

* [sendMail 发送邮件函数基于PHPMailer]

* @param [string] $address [接收邮件地址]

* @param [string] $title [发送标题]

* @param [string] $message [发送的内容]

*/

function sendMail($data = array()){

//验证发送数据

if(empty($data)){

return ['code' => 0, 'msg' => '参数异常'];

}

//验证邮件功能是否打开

if(!config('email_open')){

return ['code' => 0, 'msg' => '邮件功能未开启'];

}

//实例化邮件类,true表示开启异常

$mail = new \PHPMailer\PHPMailer\PHPMailer(true);

try {

//服务器设置

$mail->CharSet='UTF-8'; //设置邮件的字符编码,若不指定,则为'UTF-8'

//$mail->SMTPDebug = 2; //启用调试输出

$mail->isSMTP(); //设置使用SMTP

$mail->Host = config('email_smtp_server'); //指定主和备份SMTP服务器

$mail->SMTPAuth = true; //启用SMTP认证

$mail->Username = config('email_account'); //SMTP账号

$mail->Password = config('email_password'); //SMTP密码

$mail->SMTPSecure = config('email_protocol'); //tls与ssl加密类型

$mail->Port = config('email_smtp_port'); //tcp服务器端口号

//接受邮件

$mail->setFrom(config('email_email_address'), config('email_nickname')); //发件人

//收件人,可以多次使用来添加多个收件人

if(isset($data['address']) && !empty($data['address'])){

foreach($data['address'] as $key=>$value){

$mail->addAddress($value['email'], $value['nickname']);

}

}

//设置回复地址

$mail->addReplyTo(config('email_email_address'), config('email_nickname'));

//$mail->addCC('cc@');

//$mail->addBCC('bcc@');

//添加附件

if(isset($data['attachment']) && !empty($data['attachment'])){

foreach($data['attachment'] as $key=>$value){

$mail->addAttachment($value['file'], $value['name']);

}

}

//发送内容

$mail->isHTML(true); //将邮件格式设置为HTML

$mail->Subject = $data['title']; //邮件标题

$mail->Body = $data['content']; //邮件正文

$mail->AltBody = $data['content']; //邮件正文不支持HTML的备用显示

//发送

if($mail->send()){

return ['code' => 1, 'msg' => '邮件发送成功'];

}

} catch (\PHPMailer\PHPMailer\Exception $e) {

return ['code' => 0, 'msg' => '邮件发送失败:'.$mail->ErrorInfo];

}

}

发邮件:

if($data['nature'] == 1){

//1、发送发票邮件

//数据

$data = [

'address' => [

[

'email' => $data['email'],

'nickname' => '',

]

],

'title' => '活多多电子发票',

'content' => '尊敬的活多多用户,您好:您申请的电子发票已开具,请查收。活多多电子发票链接',

'attachment' => [

[

'file' => './uploads/hddimages//FP164509F02041267-C1.pdf',

'name' => 'FP164509F02041267-C1.pdf'

]

]

];

//发送

$res = sendMail($data);

if($res['code']){

$res4 = 1;

} else {

$res4 = 0;

//返回数据

$return['code'] = 0;

$return['msg'] = $res['msg'];

return json($return);

}

}

发邮件结果:

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