一、问题描述
系统发送邮件,采用的是网易邮箱,本地环境没问题,部署到阿里云,控制台报504,查看日志,系统连接网易邮箱服务器超时;
二、原因分析
原因:阿里云服务器封禁了25端口,即使安全组放开,无济于事;
三、解决方法
解决方法:开启SSL使用465端口进行发送(放开阿里云安全组465端口);
实现:
避免采坑,使用hutool提供的MailUtil工具类进行邮件发送;
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.22</version> </dependency> <!-- 邮箱--> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency>
根据需要,可以再封装一层,编写自己的MyMailUtil,减少参数设置;
MailAccount account = new MailAccount(); //邮箱服务器SMTP地址 account.setHost("smtp.yeah.net"); //端口 account.setPort("465"); //是否需要用户名密码验证 account.setAuth(true); //发送人 account.setFrom("hutool@yeah.net"); //发送用户 account.setUser("hutool"); //发送用户的密码或者授权码 account.setPass("q1w2e3"); //使用SSL安全连接 account.setSslEnable(true); //发送配置、收件人、主题、内容、是否html MailUtil.send(account,"hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);