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邮箱发送及部署后发送邮箱报错问题相关推荐

  1. 普元 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 ...

  2. 记录一次服务器登录后提示邮件报错550

    记录一次服务器登录后提示邮件报错550 `smtp-server: 550 邮箱:user not exist "/root/dead.letter" 11/417 . . . m ...

  3. 使用spring-redis-data 的hIncrBy增加值后,用get报错

    使用spring-redis-data 的hIncrBy增加值后,用get报错,错误信息如下: org.springframework.data.redis.serializer.Serializat ...

  4. 关于Access数据库执行Update语句后,不报错,但影响行数总是返回0的问题

    最近碰到一个奇怪的问题,使用Access数据库执行Update语句后,不报错,但影响行数总是返回0. 因为是第一次碰到这个问题,纠结了半天.后来在网上搜索得到解决方案: SQL语句传参数的顺序和语句中 ...

  5. easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案

    easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案 参考文章: (1)easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0 ...

  6. @Data注解使用后get set报错解决方法

    @Data注解使用后get set报错解决方法 参考文章: (1)@Data注解使用后get set报错解决方法 (2)https://www.cnblogs.com/lijinshan950823/ ...

  7. vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理)

    vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理) 参考文章: (1)vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理) (2)https://www. ...

  8. 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 ...

  9. 安装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 ...

  10. k8s集群部署中etcd启动报错request sent was ignored (cluster ID mismatch: peer[c39bdec535db1fd5]=cdf818194e3a8c

    k8s集群部署中etcd启动报错处理 报错信息如下,主要报错信息有两条 原因是/var/lib/etcd/目录下缓存导致 解决方法 问题2: Error starting daemon: SELinu ...

最新文章

  1. vue list添加元素_Vue简单入门及组件的简单使用
  2. Jmeter性能测试之ForEach控制器的使用
  3. ubuntu12.04 启动n卡独显方法
  4. python模块引用
  5. 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)
  6. nextshort_Java扫描仪的nextShort()方法与示例
  7. 2015年2月12日——不懂点
  8. 唯一索引与主键索引的比较
  9. printf,sprintf,vsprintf 区别【转】
  10. python文件创建人_Python文件处理:创建、打开、追加、读、写
  11. Java学习笔记四——运算符
  12. 单片机是什么?单片机编程怎么入门?
  13. c语言校招笔试试题,腾讯2014校园招聘C语言笔试题
  14. hash冲突以及hash冲突的解决方法
  15. linux如何复制文件夹到根目录,unix如何复制文件和文件夹目录
  16. TCP/UDP常用端口及对应服务列表
  17. 使用jQuery完成下拉菜单
  18. 手机写python工具_GitHub - littleningmeng/pyphone: Python实现的安卓手机投屏工具
  19. 手把手教你使用ModelArts的自动学习识别毒蘑菇分类
  20. OMA-DM协议资料汇总

热门文章

  1. Linux刻录光盘win10认不到,win10系统无法读取DVD和刻录光盘的具体操作步骤
  2. 键入一个字母,如果小写字母输出大写,大写字母输出小写字母
  3. matlab绘三维椭球面_MATLAB绘制三维图形
  4. 代码审计-凡诺CMS 2.1文件包含漏洞
  5. 8.字典操作。建立一个月份与天数的字典monthdays,月份为“Jan”“Feb”“Mar”“Apr”“May”“Jun” “Jul” “Aug” “Sep” “Oct” “Nov“ “Dec“
  6. 53.String的intern()方法、new String()到底创建了几个对象、intern()面试难题
  7. 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
  8. android如何虚标内存,答疑 | 手机运存明明是6GB,但实际可用才3.5GB?是虚标还是什么?...
  9. threejs 贴图动画总结
  10. 计算机点击管理无效,我的电脑有任务管理器但是点击却没反应是怎么回事