最近公司有个业务,让我做一个发邮件的功能,前端传信息给后端,然后让我直接把信息传到某企业邮箱上去,本人用阿里云企业邮箱做好功能之后在本地测试没有问题,但是上传到公司服务器之后却一直显示错误。
找到服务器日志查看了之后发现错误是 smtp.mxhichina.com port25 出了问题,自己研究许久无果,上百度搜到的解答都是说企业邮箱的25端口屏蔽了。
遂用了QQ邮箱,经前辈指点,完成功能,亲测有用
参考https://blog.csdn.net/qq_28981541/article/details/80816508博客进行改动

1. 首先是dto层的Mail类

public class Mail implements Serializable {/*** 序列号*/private static final long serialVersionUID = -3562218214168975242L;/*** 邮件编码*/public static final String ENCODEING = "UTF-8";/*** 服务器地址*/private String host;/*** 服务器端口号*/private String portNumber;/*** 发件人的邮箱*/private String sender;/*** 收件人的邮箱*/private String receiver;/*** 发件人昵称*/private String name;/*** 账号*/private String username;/*** 密码*/private String password;/*** 主题*/private String subject;/*** 信息(支持HTML)*/private String message;
}

记得生成getter和setter方法

2. 其次是MailUtil工具类

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;public class MailUtil {public boolean send(Mail mail) {//发送email对象HtmlEmail email = new HtmlEmail();try {//这里是SMTP发送服务器的名字email.setHostName(mail.getHost());//端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号if (!"".equals(mail.getPortNumber())) {email.setSSLOnConnect(true);email.setSslSmtpPort(mail.getPortNumber());}//字符编码集的设置email.setCharset(Mail.ENCODEING);//收件人的邮箱email.addTo(mail.getReceiver());//发送人的邮箱email.setFrom(mail.getSender(), mail.getName());// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码email.setAuthentication(mail.getUsername(), mail.getPassword());// 要发送的邮件主题email.setSubject(mail.getSubject());// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签email.setMsg(mail.getMessage());// 发送email.send();return true;} catch (EmailException e) {e.printStackTrace();return false;}}

这个类里最上面两行导入的包需要commons-email.jar的jar包
另外写这个功能还需要mail.jar的jar包
本人用maven创建的项目就直接到依赖包网站直接导入这两个jar包了

3.调用工具类发邮件

public void test() {Mail mail = new Mail();mail.setHost("smtp.qq.com");           //设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的mail.setPortNumber("465");             //设置邮件服务器端口号,默认25mail.setSender("发送人的邮箱,这里用qq");             //发送人mail.setName("xx公司");                    //发送人昵称mail.setReceiver("接收人的邮箱,可以随便写");           //接收人mail.setUsername("登陆账号");           //登录账号,一般都是和邮箱名一样mail.setPassword("qq邮箱授权码");  //QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明//发送邮件// 这里可以写一些邮件内容或者计算功能//定义邮件标题String title = "标题 "mail.setSubject(title);//定义邮件内容StringBuilder emailContent = new StringBuilder();//以下随便改emailContent.append("内容<br/>");emailContent.append("...........");mail.setMessage(String.valueOf(emailContent));if (new MailUtil().send(mail)) {System.out.println("发送成功");} else {System.out.println("发送失败");}}

这样子,邮件发送功能就完成了!
可喜可贺,可喜可贺

阿里云企业邮箱发送邮件失败,在本地测试可行,在云服务器上失败相关推荐

  1. 基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决)

    在虽然日常生活中,QQ,微信等即时聊天工具几乎主导了人们的生活,但是邮件依然是现代生活不可缺少的一部分.这篇文章主要讲述使用node.js 中的nodemail模块操作阿里云的企业邮箱发送邮件 (52 ...

  2. SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件

    JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP.POP3.IMAP 一.SpringBoot整合 1.需要在pom文件中添加依赖spring-boot-starter-m ...

  3. 阿里云服务器企业邮箱发送邮件,解决25端口被封问题

    最近弄了一个项目,其中一个模块通过163的企业邮箱发送邮件,本机上测试没有问题,部署到阿里云服务器后,总是提示发送邮件失败. 通过查询分析,是由于阿里云服务器为了安全起见,封了25端口,导致25端口不 ...

  4. 腾讯云企业邮箱怎么样?

    腾讯云企业邮箱怎么样? 最近有很多朋友想了解腾讯云企业邮箱怎么样?腾讯云企业邮箱贵吗?小编赵一八笔记(www.fuwuqidl.com)带大家了解腾讯云企业邮箱好不好? 一. 企业邮箱可以用来做什么? ...

  5. 钉钉邮箱登录入口_阿里企业邮箱发信失败 报错:554reject by content_「阿里云企业邮箱_阿里企业邮箱」指定经销商热线:400-855...

    问题场景: 当前阿里云企业邮箱用户因发送垃圾邮件导致账号被封禁外发的解封,需要通过发起工单方式申请解封. 操作流程: 进入工单提交页面. 单击提交工单> 企业邮箱 > 选择常见问题 > ...

  6. 解决阿里云企业邮箱发送错误码提示

    阿里云企业邮箱错误代码提示原因及解决方法,阿小云分享阿里云企业邮箱使用过程中报错.错误原因及解决方法: 阿里云企业邮箱报错及解决方法 在使用企业邮箱时如发生相应的报错,可参见以下报错信息进行解决: 本 ...

  7. 向腾讯企业邮箱发送邮件失败,报错: 559

    代码 : springboot 搬砖级 发送邮件代码 发送方: 阿里云邮件推送服务 接收方: 腾讯企业邮箱 ---------------------------------------------- ...

  8. 阿里云企业邮箱哪个代理商好

    阿里云企业邮箱哪个代理商好,阿里云企业邮箱开通,阿里企业邮箱怎么注册,阿里云邮箱企业版试用询"阿里邮箱华南400服务066中心2020"(汇华科技),2015年5月,钉钉正式推出了 ...

  9. [prometheus]Step7-prometheus使用阿里云企业邮箱告警

    prometheus使用阿里云企业邮箱告警 修改/data/alertmanager/alertmanager.yml 加入邮件配置 # 全局配置项 global:resolve_timeout: 5 ...

最新文章

  1. ZJU-java进阶笔记 第一、二周(类与对象,对象交互)
  2. Hi35xx GPIO在ko中设置
  3. Microsoft R 和 Open Source R,哪一个才最适合你?
  4. 【django】数据库操作-增 删 改
  5. 【JavaSE_06】Java中的数组(array)-练习
  6. 牛客15555 1 + 2 = 3?
  7. python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口
  8. 如何理解许多Android布局
  9. es6 Reflect对象的静态方法
  10. SpringMVC注解@RequestParam解析
  11. Solidity语言基础 和 Etherum ERC20合约基础
  12. Digit-Sum(HDU - 5710)
  13. 大数据shipin教程_大数据视频教程百度网盘下载
  14. 使用JS访问本地数据库
  15. Java图片处理:ico格式转PNG/JPG等格式
  16. Swift 读写 plist 文件
  17. 《CCNet: Criss-Cross Attention for Semantic Segmentation》--阅读笔记-ICCV2019
  18. hdu 5064 Find Sequence
  19. Android中@GuardedBy
  20. unity2D动画-角色切片与2DAnimation插件做动画

热门文章

  1. 聊聊无线充电——华为Mate RS保时捷版无线充电器详解(上篇)
  2. grpc+gateway使用说明
  3. 大数据对人们生活的积极影响_什么是大数据?大数据给我们的生活带来了哪些影响?...
  4. 网络安全-安全服务工程师-技能手册详细总结(建议学习収藏)
  5. 一级造价工程师(安装)- 计量笔记 - 第二章第三节吊装工程
  6. 苏州优步车主之家司机端下载
  7. 前世今生的痴,问谁可以洞悉
  8. 前后缀匹配问题kmp
  9. [ahk]解析大智慧自选股blk文件中的股票代码
  10. Spring AOP面向切面编程