问题描述: 在本地启动项目并发送邮箱完全木有问题,ok,上云,注册用户,一顿操作猛如虎,what?,邮箱验证码发送失败??,什么玩意??
原因: 发邮件的默认端口是25端口,而阿里云禁止通过STMP 25端口发送邮件,所以发送失败!!!!
解决方案: (1)向阿里云申请开放25端口(需要审核) 登录到阿里云管理控制台; 鼠标移动到头像,可以看到下拉菜单,点击“安全管控”
左侧栏“业务申请”–“25端口解封”
注意:在正式申请前,您需要确认同意并承诺,保证TCP 25端口仅用来连接第三方的SMTP服务器,从第三方的SMTP服务器外发邮件。如发现您使用申请的IP直接通过SMTP发送邮件,阿里云有权永久性封禁TCP 25端口,并不再提供解封服务。
选择IP类型(经典或VPC),IP及关联域名,
勾选已阅读并同意《25端口使用服务协议》,单击下一步。
填写申请表单,详细说明您的TCP 25端口使用描述及使用情况 单击确定,提交TCP 25端口解封申请
(2)采用SSL协议发送邮件,并端口号改成465,自行配置(需要开启smtp) 修改application.yml配置
spring
mail:
#邮箱服务地址
host: smtp.qq.com
#用户名
username: (你自己的username)
#发送邮件密码
password: (SMTP 密码,不是登录密码)
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
socketFactory:
class: javax.net.ssl.SSLSocketFactory
port: 465
#自定义属性以谁来发邮件
mail:
fromMail:
addr: yc488@qq.com
@Value("${mail.fromMail.addr}")
private String from;
private boolean sendEmail(String to, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject("YCBLOG系统邮件");
message.setText(content);
message.setSentDate(new Date());
try {
mailSender.send(message);
return true;
} catch (MailException e) {
e.printStackTrace();
return false;
}
}
配置完毕后,阿里云服务器安全组开启465端口
(3)重新上云,发送邮件成功!!!!
转载于:https://www.ycblog.top/article?articleId=60&pageNum=1
|