php 发送邮件设置链接_php下如何简单快捷的实现邮件发送

对于程序员来说,项目中邮件发送是常用的一个功能, 我在这不讲源码,只讲如何能快速地实现.

phpMailer 是一个非常强大的 php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、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 安装或者下载方式:

从 github 上下载: https://github.com/PHPMailer/PHPMailer/

a8de5d42ffa39e881d5579ab7eb43135.png

就这三个文件

大家实在下载不来的可以直接找我要,没关系的

php开启socket和openssl扩展,这种错误到时候解决就行

到这一步,我们就可以把这个压缩包解压到我们的项目中了,对于php来讲,如果我们用了框架,比如think PHP, 那我们把他放到extend目录下,如下图:

7adcacb78bb34c8a934d370c2610f4b9.png

think PHP

调用时用如下:

86df69f28ea271da896c094e836c9ac4.png

如果没用框架,那就放到公共的三方引用目录里面或直接就放到你当前php文件的同级目录下,没什么关系,引用路径写对就行,如下图:

b38466b5d22e091dcda2ac3afae267ff.png

调用时如下:

59dcc950f78e489d0f9024134e4d68fa.png

到这一步相信大家都没什么问题,下面重点谈谈代码层面的问题:

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

网易邮箱配置如下图:

31dc7145bde7ace86242f4938dcf7c64.png

QQ 邮箱相关配置如下图:

11824f3ea7c465fee4d01c7b50c5a77c.png

我们调试的时候一般都是用免费的邮件服务器,QQ或163, 用QQ 邮箱时,大家容易忽略一个问题,那就是QQ邮箱走465端口,ssl协议,所以我们如下配置:

8b22b1e29b62956243ff5809c2de70a3.png

注意一点, 密码为单独的授权码,不是你的邮箱密码,有人卡在这了,哈哈

如果用别的邮箱,可以走25端口,但这有一点特别坑,就是阿里云默认25端口是关的,所以没办法,要么不用25端口,要么就是向阿里云申请25端口,要么就是换服务器供应商,如IDC等等,

60d3c352c0d6e53241c57963a13dd01e.png

用25端口就不用ssl协议了,

6efc9ab1b1ef88990cb3a6070b6a478e.png

具体代码就是这一条写不写的区别.

还有就是同时发送多人和多张附件的问题:

e31b303eb1ca46deabf2ad973fca8123.png

发送多人,处理参数,循环

3f02776c6e70577a28eb8a2e38915cf4.png

发送附件,处理参数,循环

实在是没什么好说的,就是附件路径要直接指向你的二进制文件,相对路径和绝对路径都行,但不是网图链接或三方图片服务器链接,比如七牛云和阿里云oss,这种只能先下载到本地或服务器才行,注意个别下载授权问题,你懂的

到这一步差不多了,直接放代码:

/**

* 发送邮件(重构/支持附件)

*/

//参数有接收邮箱,可单人,可多人, 字符串和数组都行,看你

//主题,这不用多说

//内容, 可html,自动识别

//附件,上面已经说过注意事项

//三方包里面不用做任何修改

public static function send_email($sendTo, $titleName, $content, $file_list = []) {

$email = array(

'charset' => 'UTF-8', //字符编码

'host' => 'smtp.leju.com', //企业邮局域名

'port' => 25, //端口

'username' => '', //邮件发送人

'password' => '', //密码

);

require_once 'Phpmailer/phpmailer.php';

$mail = new PHPMailer(); //实例化

//附件

if (!empty($file_list)) {

foreach ($file_list as $key => $value) {

$mail->AddAttachment($value); // 添加附件

}

}

$titleName = $titleName;

// 使用SMTP方式发送

$mail->IsSMTP();

// 设置邮件的字符编码

$mail->CharSet = $email['charset'];

// 企业邮局域名

$mail->Host = $email['host'];

$mail->Port = $email['port'];

// 启用SMTP验证功能

$mail->SMTPAuth = true;

//邮件发送人的用户名(请填写完整的email地址)

$mail->Username = $email['username'];

// 邮件发送人的 密码 (授权码)

$mail->Password = $email['password']; //修改为自己的授权码

//邮件发送者email地址

$mail->From = $email['username'];

//发送邮件人的标题

$mail->FromName = '';

//做一下处理, 可以多个收件人,也可以一个

//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值