整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

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/

就这三个文件

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

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

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

think PHP

调用时用如下:

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

调用时如下:

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

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

网易邮箱配置如下图:

QQ 邮箱相关配置如下图:

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

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

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

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

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

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

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

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

实在是没什么好说的,就是附件路径要直接指向你的二进制文件,相对路径和绝对路径都行,但不是网图链接或三方图片服务器链接,比如七牛云和阿里云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","收件人姓名")

if (!empty($sendTo)) {

$sendTo = explode(",", $sendTo);

foreach ($sendTo as $k => $v) {

$mail->AddAddress($v, substr($v, 0, strpos($v, '@')));

}

}

//回复的地址

$mail->AddReplyTo($email['username'], "");

//set email format to HTML //是否使用HTML格式

$mail->IsHTML(true);

//邮件标题

$mail->Subject = $titleName;

//邮件内容

$mail->Body = $content;

//附加信息,可以省略

$mail->AltBody = '';

if (!$mail->Send()) {

$mail_return_arr['code'] = false;

$str = "邮件发送失败.

";

$str .= "错误原因: " . $mail->ErrorInfo;

$mail_return_arr['info'] = $str;

} else {

$mail_return_arr['code'] = true;

$str = "邮件发送成功";

$mail_return_arr['info'] = $str;

}

return $mail_return_arr;

}

到这一步,大家可以自己进行测试了,有问题可以留言,一般常见的问题我都可以为大家解答,或发我邮箱lnmp171@163.com

、前言

Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能。

Spring 自带了一个 MailSender 的实现 JavaMailSenderImpl,它会使用 JavaMail API 来发送 Email。Spring 或 SpringBoot 应用在发送 Email 之前,我们必须要 JavaMailSenderImpl 装配为 Spring应用上下文的一个 bean。

回到顶部

二、配置

1、pom.xml

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2、application.yml

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

知道mac邮件客户端哪个好用?不要担心,这里为大家推荐Airmail Mac版,你可以登录iCloud、Gmail、Yahoo、Outlook、Google App等账号,Airmail 5 for mac中文版支持保留单个或多个帐户,快速切换账号,轻松收发邮件,非常便捷,需要mac邮件客户端的朋友赶紧试试airmail mac版吧!

Airmail for mac官方介绍

Airmail是一个新的邮件客户端,具有快速的***能和直观的交互。它支持iCloud™,MS Exchange,Gmail™,Google™应用程序,IMAP,POP3,Yahoo!™,AOL™,Outlook.com™和Live.com™。

无论您使用单个帐户还是多个帐户,Airmail都是从头开始设计的,可为您提供一致的体验,并提供快速,现代且易于使用的界面。Airmail很干净,可以让您不间断地收到电子邮件。这是你想要的邮件客户端,但直到现在还没有找到。

我们通过Airmail将可用***和功能提升到了新的水平。Airmail拥有漂亮的设计,并为所有主要的电子邮件服务提供支持。在闪存中切换帐户,轻松地将您的电子邮件转换为其他应用程序中的任务或备注,并在几秒钟内快速回复收到的消息。电子邮件从未如此简单和富有成效。

https://mac.orsoon.com/Mac/164236.html?id=MTY4MTYyJl8mMjIwLjE4Ni41Mi4yNw%3D%3D

airmail mac版功能特点

记录:

- 统一收件箱

- 自定义SMTP别名

- Exchange、iCloud™、Gmail™、IMAP、POP3、Google™ Apps、Yahoo!™、AOL™、Outlook.com™、Live.com™

- 本地帐户

- 从Apple Mail、MBOX存档、EML、EMLX、Airmail 1.x导入

交互:

- 快速回复

- 撤消历史

- 离线***作

- 在不同邮箱间移动邮件

- 交互声音

- 多点触控手势

- Exchange会议邀请

快捷键:

- Gmail快捷键

- 自定义全局快捷键

- Quick Label、移动、标签和存档

- 快速文件夹选择

附件:

- 拖放

- Quick Look预览

- Google Drive、Dropbox、CloudApp、Box、Onedrive、Droplr、FTP

- Inline图像附件

- Winmail.dat预览

- VCalendar

对话:

- 按ID分组

- 按主题分组

- 时间倒序

- 屏蔽抄送对话

视觉:

- 多个视觉主题

- 最小和扩展模式

- 纯文本渲染

通知:

- 按帐户通知

- 通知中心支持

- 带自定义***作的通知提醒

地址:

- Gmail、Exchange和OS X联系人

- 联系人群组

- 按地址过滤

- 开放目录搜索

撰写器:

- Google App目录

- Exchange全局地址列表

- LDAP目录

- Markdown、Html(模板的Html源代码)和纯文本。

- 每个帐户的自定义设置

- 项目符号和编号列表。

发送:

- 自动抄送、密件抄送

- 等待***作

- 发送延迟

- 重定向

- 再次发送

- 退回

高级:

- 分屏支持

- 适用于Time Machine

- Deckles模式

- EML导入/导出

- 禁用GPU以延长电池寿命

- Applescript

- 活动监视器

- 数据检测器

签名:

- 多个账户签名

- Markdown、富文本、Html源代码和纯文本。

- 在引用上方或下方签名

搜索和过滤:

- 多个帐户全局搜索

- 强大的实时过滤

- 邮件、日期、附件、对话排序…

- 显示同一用户的邮件

- 标记和过滤

文件夹、标签:

- 嵌套文件夹

- 创建、删除和编辑文件夹

- 由iCloud同步的自定义色彩

- 自定义文件夹映射

- 待办事项、已完成、备忘录

发送至:

- Omnifocus

- Fantastical

- Evernote

- Apple Reminder

- Calendar

- BusyCal

- Things

- 2To

- Wunderlist

- Todoist

***:

- 每个用户自动加载远程图像,

- 禁用图标检测