Spring Boot 使用465端口发送邮件
来源:互联网 发布:2015全球社交网络排名 编辑:程序博客网 时间:2024/06/05 22:24
最近做的一个项目中有个邮件发送功能,发送邮件默认是25端口,但是公司用的服务器是阿里云的,会屏蔽25端口,所以部署到服务器后连接不上邮件服务器,需要使用SSL协议(使用465端口)。
需要注意的是Spring Boot 的版本问题,低版本只支持使用默认的25端口进行发送,或者使用SSL协议时的配置有所区别,我的Spring Boot 的版本信息最开始是1.3.0.RELEASE,在开发完成后测试的时候发现使用465端口死活连不上邮件服务器,只能通过25端口发送,对比了以前我做的项目,发现只有boot的版本不一样,于是我修改了一下版本信息,修改后如下所示:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.7.RELEASE</version></parent>
代码实现细节如下
一、添加maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>
二、添加配置信息
#邮件配置spring.mail.host=邮件服务器地址spring.mail.username=用户名spring.mail.password=密码spring.mail.default-encoding=UTF-8#登录服务器是否需要认证spring.mail.properties.mail.smtp.auth=true#SSL证书Socket工厂spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory#使用SMTPS协议465端口spring.mail.properties.mail.smtp.socketFactory.port=465#显示在收件人邮箱里面的发件人名称spring.mail.self.username=用户名
三、Java代码
import java.io.File;import java.util.List;import javax.mail.MessagingException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMessage.RecipientType;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Service;/** * @类名: MailSender<br> * @描述: 邮件发送<br> */@Servicepublic class MailSendService {@AutowiredJavaMailSender mailSender;//发件人名称设置@Value("${spring.mail.self.username}")private String sendUser;public void sendEmail(String toMail, String title, String content) throws MessagingException {final MimeMessage mimeMessage = mailSender.createMimeMessage();final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);message.setFrom(sendUser);message.setTo(toMail);message.setSubject(title);message.setText(content); mailSender.send(mimeMessage);}/** * @方法名: sendSimpleMail<br> * @描述: 发送普通文本格式的邮件<br> * @param toMail 收件人,多个用英文格式逗号分隔 * @param replyTo 抄送人,多个用英文格式逗号分隔 * @param title 邮件主题 * @param content 邮件内容 * @param flies 附件 * @throws Exception */public void sendSimpleMail(String toMail, String replyTo, String title, String content, List<File> files) throws Exception {final MimeMessage mimeMessage = mailSender.createMimeMessage();final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setFrom(sendUser);helper.setSubject(title);helper.setText(content);//设置多个收件人String[] toAddress = toMail.split(",");helper.setTo(toAddress);//设置多个抄送if(StringUtils.isNotBlank(replyTo)) {//helper.setReplyTo(replyTo);InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo); mimeMessage.setReplyTo(internetAddressCC);}//添加附件if(null != files) {for (File file : files) {helper.addAttachment(file.getName(), file);}}mailSender.send(mimeMessage);}/** * @方法名: sendHtmlMail<br> * @描述: 发送HTML格式的邮件<br> * @param toMail 收件人,多个用英文格式逗号分隔 * @param replyTo 抄送人,多个用英文格式逗号分隔 * @param title 邮件主题 * @param htmlContent 邮件内容 * @param files 附件 * @throws Exception */public void sendHtmlMail(String toMail, String replyTo, String title, String htmlContent, List<File> files) throws Exception {final MimeMessage mimeMessage = mailSender.createMimeMessage();final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setFrom(sendUser);helper.setSubject(title);helper.setText(htmlContent, true);//设置多个收件人String[] toAddress = toMail.split(",");helper.setTo(toAddress);//设置多个抄送if(StringUtils.isNotBlank(replyTo)) {//helper.setReplyTo(replyTo);InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo); mimeMessage.setRecipients(RecipientType.CC,internetAddressCC);}//添加附件if(null != files) {for (File file : files) {helper.addAttachment(file.getName(), file);}}mailSender.send(mimeMessage);}}
阅读全文
1 0
- Spring Boot 使用465端口发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- spring boot 发送邮件
- spring boot 发送邮件
- spring boot 发送邮件
- spring boot 发送邮件
- spring boot发送邮件
- spring boot 发送邮件
- Spring Boot 发送邮件
- 47. Spring Boot发送邮件
- spring-boot mail 邮件发送
- 47. Spring Boot发送邮件
- Java 使用465端口发送邮件
- 在Spring Boot中使用JavaMailSender发送各类邮件
- 全排列
- JS删除一个数组中满足条件的所有数据
- VMware Ubuntu安装详细过程
- spark学习03之wordCount统计并排序(java)
- php5.3x不再支持ereg和eregi
- Spring Boot 使用465端口发送邮件
- cmd中netsh工具的使用
- Rxjava2 笔记
- Codeforces Round #443 (Div. 2) A、B、C 位运算
- ES查询-match VS match_phrase
- hadoop 等一系列问题
- os模块关于路径
- ArrayList自动扩容解析
- Tips:error C4996: 'GetVersionExA': 被声明为已否决