/**
* 邮件工具类
* User: NZG
* Date: 2019/3/8
* Time: 12:25
**/
@Data
@Component
@Configuration
@ConfigurationProperties(prefix = "email")
//@PropertySource("classpath:config/application.properties")
public class EmailConfig { private String myEmailAccount; // 发件人 账号 private String myEmailPassword; //密码,是你自己的设置的授权码 private String email163SmtpHost; // SMTP服务器(这里用的163 SMTP服务器) private String smtp163Port;// 端口号,这个是163使用到的;QQ的应该是465或者875 }

# 邮件发送 (网易)
email.myEmailAccount=17719@163.com
email.myEmailPassword=ng87187  
email.email163SmtpHost=smtp.163.com
email.smtp163Port=25  

  

 @Autowired
 private EmailConfig emailConfig;
public ResponseResult<String> sendEmail(SendEmailCodeReqVO vo) {
try {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = new Properties();
props.setProperty("mail.smtp.host", emailConfig.getEmail163SmtpHost());
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", emailConfig.getSmtp163Port());
props.setProperty("mail.smtp.socketFactory.port", emailConfig.getSmtp163Port());
props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailConfig.getMyEmailAccount(),
emailConfig.getMyEmailPassword());
}}); session.setDebug(true);
MimeMessage message = new MimeMessage(session);
// 收件人
message.setRecipients(Message.RecipientType.TO, vo.getReceiveEmailAccount());
// 发件人
message.setFrom(new InternetAddress(emailConfig.getMyEmailAccount()));
//短信发送类型
Integer type = vo.getType();
EmailSendType sms = EmailSendType.getSmsEnumByType(type);
// 内容(这个内容还不能乱写,有可能会被SMTP拒绝掉;多试几次吧)
String msg = "";
String pwd = PassWordUtils.editPassword();
switch (sms) {
case FORGET_PWD:
msg = MessageFormat.format(PatientConstants.EMAIL_MESSAGE_PROMPT, pwd);
break;
default:
break;
}
message.setSubject("辅助系统随机密码");
message.setContent(msg, "text/html;charset=UTF-8");
message.setSentDate(new Date());
message.saveChanges();
Transport.send(message);
//根据邮箱修改密码
UserPraient user = userHandler.getUserByEmail(vo.getReceiveEmailAccount());
if(user==null){
return ResponseResult.failNotice(PatientSystemCode.USER_REG_REEOR.msg());
}
user.setUserPassword(PassWordUtils.entryptPassword(pwd));
userHandler.editUserPassword(user);
} catch (MessagingException e) {
e.printStackTrace();
return ResponseResult.failNotice(PatientSystemCode.MAIL_DELIVERY_FAILED.msg());
}
return ResponseResult.success();
}

阿里云服务器发送邮件失败,25端口被禁用,采用ssl 方式 465端口发送的更多相关文章

  1. 阿里云服务器 通过JavaMail发送邮箱STMP问题( 25端口被禁用 使用SSL协议465端口 )

    我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了 ...

  2. 阿里云服务器 通过JavaMail发送邮箱STMP问题 25端口被禁用 使用SSL协议465端口

    1 问题描述 我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JD ...

  3. 阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]

    阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110] 一.总 ...

  4. 阿里云ECS发送邮件失败

    阿里云发送SMTP邮件失败   N多测试发现 阿里云服务器不能用25端口发邮件,配置465端口阿里云发送邮件是成功的 修改mail.rc 里的smtp 端口为465 配置如下 set from=*** ...

  5. c#阿里云服务器发送邮件

    public static void SendMailUse() { string host = "smtp.lotusest.com";// 邮件服务器smtp.163.com表 ...

  6. 阿里云服务器用smtp发送邮件返失败

    阿里云使用SMTP发送邮件失败,因为阿里云服务器屏蔽了25端口,所以发送不成功,解决办法改用587发送QQ邮件,且必须使用SSL,否则不成功. 经测试QQ的465,995不能使用. https://b ...

  7. 阿里云服务器 centos7 中继邮箱+转发服务 详细配置

    阿里云centos7 邮箱转发服务配置 一.文档编写目的: 网络拓扑图: 阿里云服务器屏蔽掉25端口后,内网服务器如何通过跳板机发送邮件到外网邮箱. 如果是可联网的阿里云机器,可以直接配置mailx使 ...

  8. 2、阿里云ECS发送邮件到腾讯企业邮箱(ECS默认不开启25端口)

    阿里云ECS默认禁用25端口导致发邮件失败. 方法一: 使用shell脚本发送邮件,需要配置mailx 1.安装软件 yum install mailx 2.配置 vim /etc/mail.rc在文 ...

  9. 阿里云服务器25端口禁用之如何使用Java发邮件(解决25端口禁用问题)

    通常我们在本地使用Java发送邮件,通常是没有问题的,但是部署到服务器的话,就可能遇到问题.当然了,这与运营商也有关系.比如我之前在咖啡主机上购买虚拟机,然后将个人网站部署上去,通常是没有问题的,没有 ...

随机推荐

  1. javascript 文字大小自动适应文本框 (文字大小自动调整)

    javascript 文字大小自动适应文本框 (文字大小自动调整) TOC 思考 思考一:面积法 思考二:微调法 代码 在进行类似微博墙之类的展示页面中,经常会遇到这样的需求:在固定大小的区域放入字数 ...

  2. 洛谷P1155 双栈排序(贪心)

    题意 题目链接 Sol 首先不难想到一种贪心策略:能弹则弹,优先放A 然后xjb写了写发现只有\(40\),原因是存在需要决策的情况 比如 \(A = {10}\) \(B = {8}\) 现在进来一 ...

  3. easy html+css tree 简单的HTML+css导航树

    code: show:

  4. android启动应用

    private void openApp(String packageName) { PackageInfo pi = getPackageManager().getPackageInfo(packa ...

  5. Oracle案例07——ORA-28000: the account is locked

    遇到这个错误,一般我们想到的是数据库用户被锁,只需要执行用户解锁即可恢复,但这里之所以写出来是因为比较奇葩的一个问题. 昨天下午接同事信息,说一个用户连接报被锁,经过沟通发现其实连接一个ADG的备库作 ...

  6. MyCAT详解

    一.MyCAT概述 MyCAT是一款由阿里Cobar演变而来的用于支持数据库读写分离.分片的分布式中间件.MyCAT可不但支持Oracle.MSSQL.MYSQL.PG.DB2关系型数据库,同时也支持 ...

  7. 【SQL重温】面试之数据库基础练习

    简介 最近在练习SQL基础,首先感叹一下,在机器上写和在纸上写还是有区别的. 本文的练习题目请点击此链接进行查看:http://www.cnblogs.com/edisonchou/p/3878135 ...

  8. urlx

    2015-09-24 23:41:26 centos6.6下安装MongoDB3.0.1 https://www.percona.com/doc/percona-tokumx/installation ...

  9. [使用经验]cocostudio UI编辑器的裁剪

    日志-2015/03/16 描述:在程序使用UI编辑器导出文件的时候,该panel中大于panel的部分都没有显示出来,例如人物,一些特效等 原因:UI编辑器panel都勾上了裁剪 解决:在编辑器中把 ...

  10. editplus 格式化 js、html、xml、css

    没有文件扩展”js”的脚本引擎的问题的解决办法 解决办法如下: 打开注册表编辑器,定位"HKEY_CLASSES_ROOT" > ".js" 这一项,双击 ...