JAVA实现126邮箱发送及部署后发送邮箱报错问题
JAVA实现.126邮箱发送
126邮箱服务器地址:
- POP3:pop.126.com
- SMTP:smtp.126.com
- IMAP:imap.126.com
端口:
- POP3:110
- POP3 SSL:995
- IMAP:143
- IMAP SSL: 993
- SMTP:25
- SMTP SSL:465
- SMTP TLS:587
首先开启POP3/SMTP/IMAP
!!!根据操作你会获得一个授权码,授权码保存下来等会要用到!!!
1.搭建SpringBoot 添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.3.7.RELEASE</version></dependency>
2.在配置文件中添加邮箱基本配置我这里用的是.properties
#邮箱
#配置 smtp 服务器地址
spring.mail.host=smtp.126.com
# smtp 服务器的端口25/ssl 465
spring.mail.port=25
# 配置邮箱用户名
spring.mail.username=你要发送短信的邮箱账号
# 配置申请到的授权码
spring.mail.password=刚才获取到了授权码
# 配置邮件编码
spring.mail.default-encoding=UTF-8
# 配饰 SSL 加密工厂
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
# 表示开启 DEBUG 模式
spring.mail.properties.mail.debug=true
简单邮箱发送示例代码:
@SpringBootTest
class SendqqemailApplicationTests {@AutowiredJavaMailSender javaMailSender;/*** 发送简单邮件*/@Testpublic void sendSimpleMail() {SimpleMailMessage msg = new SimpleMailMessage(); //构建一个邮件对象msg.setSubject("这是一封测试邮件"); // 设置邮件主题msg.setFrom("和配置文件中保持一致邮箱"); // 设置邮箱发送者msg.setTo("接受者邮箱"); // 设置邮件接收者,可以有多个接收者msg.setSentDate(new Date()); // 设置邮件发送日期msg.setText("这是测试邮件的正文"); // 设置邮件的正文javaMailSender.send(msg);}
}
附件邮箱发送示例代码:
@Component
@Slf4j
public class SendEmail {@Autowiredprivate JavaMailSender javaMailSender;public void sendEmail(JSONObject object) throws MessagingException {log.info("===============>开始发送邮件===============");MimeMessage mimeMessage = javaMailSender.createMimeMessage();//解决附件名太长会被截取掉或者中文乱码问题System.getProperties().setProperty("mail.mime.splitlongparameters", "false");MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"utf-8");// 设置邮件主题helper.setSubject(object.getString("subject"));// 设置邮箱发送者helper.setFrom(object.getString("from"));// 设置邮件接收者,可以有多个接收者helper.setTo(object.getString("to"));// 设置邮件发送日期helper.setSentDate(new Date());// 设置邮件的正文helper.setText(object.getString("text"));//附件名称,附件文件File file=new File(object.getString("fileUrl"));String fileName=file.getName();helper.addAttachment(fileName,file);javaMailSender.send(mimeMessage);log.info("===============>发送邮件结束===============");}
这样一个126的邮箱发送就基本完成了
注意:
如果你当前的项目部署在了阿里云申请的服务器上,你会发现邮箱发送失败,会出现端口被占错误出现,是因为
阿里云服务器默认禁用25端口
解决办法:
将邮箱发送换成SSL形式,更换端口
1.更改配置文件,其他内容不变,更换SSL端口
# smtp 服务器的端口25/ssl 465
spring.mail.port=465
2.添加SSL配置
#ssl
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
这样服务器端口被占问题就解决了,
JAVA实现126邮箱发送及部署后发送邮箱报错问题相关推荐
- 普元 AppServer 6.5 部署业务应用war报错:java.lang.RuntimeException: java.lang.ClassNotFoundException: org.hiber
[问题] AppServer 6.5 部署业务应用war报错: Exception while invoking class org.glassfish.ejb.startup.EjbApplicat ...
- 记录一次服务器登录后提示邮件报错550
记录一次服务器登录后提示邮件报错550 `smtp-server: 550 邮箱:user not exist "/root/dead.letter" 11/417 . . . m ...
- 使用spring-redis-data 的hIncrBy增加值后,用get报错
使用spring-redis-data 的hIncrBy增加值后,用get报错,错误信息如下: org.springframework.data.redis.serializer.Serializat ...
- 关于Access数据库执行Update语句后,不报错,但影响行数总是返回0的问题
最近碰到一个奇怪的问题,使用Access数据库执行Update语句后,不报错,但影响行数总是返回0. 因为是第一次碰到这个问题,纠结了半天.后来在网上搜索得到解决方案: SQL语句传参数的顺序和语句中 ...
- easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案
easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案 参考文章: (1)easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0 ...
- @Data注解使用后get set报错解决方法
@Data注解使用后get set报错解决方法 参考文章: (1)@Data注解使用后get set报错解决方法 (2)https://www.cnblogs.com/lijinshan950823/ ...
- vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理)
vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理) 参考文章: (1)vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理) (2)https://www. ...
- android 开发问题集(一):SDK更新后 运行程序报错Location of the Android SDK has not been setup in the preferences
SDK更新后 运行程序报错Location of the Android SDK has not been setup in the preferences 问题描述:android跟新后报错loca ...
- 安装Python3.5后,pip报错Fatal error in launcher: Unable to create process using ‘“‘解决方案
安装Python3.5后,pip报错Fatal error in launcher: Unable to create process using '"'解决方案 参考文章: (1)安装Py ...
- k8s集群部署中etcd启动报错request sent was ignored (cluster ID mismatch: peer[c39bdec535db1fd5]=cdf818194e3a8c
k8s集群部署中etcd启动报错处理 报错信息如下,主要报错信息有两条 原因是/var/lib/etcd/目录下缓存导致 解决方法 问题2: Error starting daemon: SELinu ...
最新文章
- vue list添加元素_Vue简单入门及组件的简单使用
- Jmeter性能测试之ForEach控制器的使用
- ubuntu12.04 启动n卡独显方法
- python模块引用
- 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)
- nextshort_Java扫描仪的nextShort()方法与示例
- 2015年2月12日——不懂点
- 唯一索引与主键索引的比较
- printf,sprintf,vsprintf 区别【转】
- python文件创建人_Python文件处理:创建、打开、追加、读、写
- Java学习笔记四——运算符
- 单片机是什么?单片机编程怎么入门?
- c语言校招笔试试题,腾讯2014校园招聘C语言笔试题
- hash冲突以及hash冲突的解决方法
- linux如何复制文件夹到根目录,unix如何复制文件和文件夹目录
- TCP/UDP常用端口及对应服务列表
- 使用jQuery完成下拉菜单
- 手机写python工具_GitHub - littleningmeng/pyphone: Python实现的安卓手机投屏工具
- 手把手教你使用ModelArts的自动学习识别毒蘑菇分类
- OMA-DM协议资料汇总
热门文章
- Linux刻录光盘win10认不到,win10系统无法读取DVD和刻录光盘的具体操作步骤
- 键入一个字母,如果小写字母输出大写,大写字母输出小写字母
- matlab绘三维椭球面_MATLAB绘制三维图形
- 代码审计-凡诺CMS 2.1文件包含漏洞
- 8.字典操作。建立一个月份与天数的字典monthdays,月份为“Jan”“Feb”“Mar”“Apr”“May”“Jun” “Jul” “Aug” “Sep” “Oct” “Nov“ “Dec“
- 53.String的intern()方法、new String()到底创建了几个对象、intern()面试难题
- 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
- android如何虚标内存,答疑 | 手机运存明明是6GB,但实际可用才3.5GB?是虚标还是什么?...
- threejs 贴图动画总结
- 计算机点击管理无效,我的电脑有任务管理器但是点击却没反应是怎么回事