问题描述:

项目在我们本地的时候发送短信没有问题,部署到阿里云服务器后就无法发送短信。
不能在阿里服务器上发送短信的代码:

public final class MailUtils {private static final String USER = "xxxxxxxxxx"; // 发件人称号,同邮箱地址private static final String PASSWORD = "xxxxxxx"; // 如果是qq邮箱可以使户端授权码,或者登录密码/*** @param to 收件人邮箱* @param text 邮件正文* @param title 标题*//* 发送验证信息的邮件 */public static boolean sendMail(String to, String text, String title){try {final Properties props = new Properties();props.put("mail.smtp.auth", "true");props.put("mail.smtp.host", "smtp.qq.com");// 发件人的账号props.put("mail.user", USER);//发件人的密码props.put("mail.password", PASSWORD);// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName = props.getProperty("mail.user");String password = props.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};// 使用环境属性和授权信息,创建邮件会话Session mailSession = Session.getInstance(props, authenticator);// 创建邮件消息MimeMessage message = new MimeMessage(mailSession);// 设置发件人String username = props.getProperty("mail.user");InternetAddress form = new InternetAddress(username);message.setFrom(form);// 设置收件人InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体message.setContent(text, "text/html;charset=UTF-8");// 发送邮件Transport.send(message);return true;}catch (Exception e){e.printStackTrace();}return false;}public static void main(String[] args) throws Exception { // 做测试用MailUtils.sendMail("123456@163.com","你好,这是一封测试邮件,无需回复。","测试邮件");System.out.println("发送成功");}
}

解决办法:

原因很简单,其实项目在我们本地的时候发送邮件的默认端口是25
然而阿里云是禁止通过STMP 25端口发送邮件。
采用SSL协议发送邮件,并端口号改成465


我们对代码进行一些改进,增加一些配置:

final Properties props = new Properties();props.put("mail.smtp.host", "smtp.qq.com");props.put("mail.smtp.auth", "true");//开启认证props.put("mail.smtp.port","465");//设置端口props.put("mail.smtp.ssl.enable", true);props.put("mail.smtp.socketFactory.port", "465");//设置ssl端口props.put("mail.smtp.socketFactory.fallback", "false");props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

对于这个问题很多都没有说到这一项:props.put(“mail.smtp.ssl.enable”, true);走了很多坑后加上这句在阿里服务器上面就可以奔放了,比原来的速度还要快。

解决项目部署到阿里服务器后不能发送短信了相关推荐

  1. 阿里云接口实现发送短信验证码

    java 阿里云接口实现发送短信验证码 1. 阿里云后台配置短信相关 1.1 开通短信服务 1.2 添加模板签名 1.3 创建秘钥 1.4 短信需要后台授权--注意点 2 java--简单实现短信验证 ...

  2. 项目部署到云服务器后谷歌验证码图片无法显示的问题解决

    ​ 相信自学JavaWeb的小伙伴和我一样,学习的是尚硅谷的JavaWeb课程.在尚硅谷的课程中,王振国老师手把手带我们做了一个书城项目,其中注册模块需要用到验证码,我们选用谷歌验证码kaptcha. ...

  3. 传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)

    1. 图片存储方案 1.1 介绍 在实际开发中,我们会有很多处理不同功能的服务器.例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服 ...

  4. 基于MFC与阿里云制作简易发送短信

    ***~~ 做到最后可能会只是不能识别汉字,但是能识别英文和数字,有待改进的地方` ` ~~ *** # 详细步骤见如下 一. 新建一个MFC项目:打开VS2013,文件->新建->项目 ...

  5. java集成阿里大于第三方平台发送短信验证码

    闲话不多说,言归正传.今天我要分享的是利用阿里大鱼实现网站和APP的短信验证.  阿里大鱼开放了很多的消息通知服务,包括短信通知,语音通知等.  阿里大鱼的短信发送官方API:https://api. ...

  6. 项目实战:Qt给指定手机发送短信(点对点、群发等等)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  7. 阿里大鱼.net core 发送短信

    阿里大鱼还未提供 .net core 版SDK,但提供了相关API,下面是.net core版实现,只是简单发送短信功能: using System; using System.Collections ...

  8. 解决项目部署到阿里云服务器邮件发送失败的方法

    阿里云服务器禁用了25端口,所以改为465端口采用SSL协议传输邮件 163网易免费邮箱相关服务器信息: 相关代码: package com.yc.util;import java.io.File; ...

  9. java 阿里云接口实现发送短信验证码

    1.先去阿里云开通短信服务: 2.添加模板及签名:需要审核,个人账户审核就几分钟就OK 先解释一下模板及签名: 标准参照:https://help.aliyun.com/document_detail ...

最新文章

  1. MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码
  2. Boosting、Adaboost、AdaBoost模型的优缺点、提升树、梯度提升树GBDT
  3. Anconda PyCharm TensorFlow
  4. DataTables中设置某些列不进行排序
  5. Eigen入门之密集矩阵 8 - resharp slicing切片
  6. flutter --- 使用dio包
  7. ThinkPHP 多语言的实现
  8. 统一建模语言UML轻松入门之用例
  9. arm linux 掉电检测,如何实现单片机掉电检测与数据掉电保存?-嵌入式系统-与非网...
  10. 阿里云网站域名备案流程全过程(图文讲解)
  11. 锂电池电量百分比计算_电池soc是什么意思
  12. oracle 自动提交 配置文件,使用 netcfg 命令配置配置文件 - Oracle Solaris 管理:网络接口和网络虚拟化...
  13. 打印纸张尺寸换算_常用纸张的尺寸大小对照表-纸张规格对照表.doc
  14. vue_小项目_吃饭睡觉打豆豆
  15. 探讨:Mac真的有必要安装双系统吗
  16. ccpc网络预选赛总结
  17. OpenCL Programming Cases and Optimization Methods, Pinned Memory
  18. 成长的路上总会有那么一群人
  19. SunlightCoin简介——SunlightCoin 人人都是矿工
  20. 如何在电脑上添加蓝牙耳机设备

热门文章

  1. 苹果笔记本查看剩余内存
  2. 计算机组装部件推荐,组装电脑需要哪些配件-组装电脑配置推荐2020
  3. html设置自动点击超链接,html设置超链接的方法步骤
  4. easyexcel 设置超链接或附件地址
  5. Hash表(哈希表、散列表)
  6. 九型人格测试,帮助你了解自己的性格
  7. java处理Hex编码解码
  8. AcWing 1695 果壳游戏 题解(春季每日一题)
  9. Android基于wheelView的自定义日期选择器(可拓展样式)
  10. java中的错误流_如何在Java中更改Saxon的标准错误输出流?