于程序员来说,项目中邮件发送是常用的一个功能, 我在这不讲源码,只讲如何能快速地实现.
phpMailer 是一个非常强大的 php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
phpMailer 的特点:
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
***:
- 每个用户自动加载远程图像,
- 禁用图标检测
*请认真填写需求信息,我们会在24小时内与您取得联系。