首页 文章 精选 留言 我的

精选列表

搜索[email],共2338篇文章
优秀的个人博客,低调大师

Java发送Email邮件及SpringBoot集成

一:普通方式发送 1.导包 <!--Java MAil 发送邮件API--> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.6.1</version> </dependency> <!-- 真正的实现库 --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.1</version> </dependency> 2.代码 实例:通过一个已知的163邮箱发送给他人邮件 public static void main(String[] args) throws MessagingException { // 1.创建一个程序与邮件服务器会话对象 Session Properties props = new Properties(); props.setProperty("mail.transport.protocol", "SMTP"); props.setProperty("mail.smtp.host", "smtp.163.com"); props.setProperty("mail.smtp.port", "25"); // 指定验证为true props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.smtp.timeout", "1000"); // 验证账号及密码,密码对应邮箱授权码(163密码可行,qq必须授权码) Authenticator auth = new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("xxxx@163.com", "xxxxx"); } }; Session session = Session.getInstance(props, auth); // 2.创建一个Message,它相当于是邮件内容 Message message = new MimeMessage(session); // 设置发送者 message.setFrom(new InternetAddress("xxx同上xxx@163.com")); // 设置发送方式与接收者 message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("xx10086xx@qq.com")); // 设置主题 message.setSubject("邮件发送测试"); // 设置内容 message.setContent("Hello!", "text/html;charset=utf-8"); // 3.创建 Transport用于将邮件发送 Transport.send(message); } 二:SpringBoot的JavaMailSenderImpl发送 1.在resources下新建mailConfig.properties mailConfig.properties #服务器 mailHost=smtp.163.com #端口号 mailPort=25 #邮箱账号(使用者改成自己的) mailUsername=xxxxxx@163.com #邮箱密码(使用者改成自己的) mailPassword=xxxxx #时间延迟 mailTimeout=25000 2.新建一个类去读这个配置文件的内容 import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Create by yster@foxmail.com 2018/5/28/028 21:00 */ public class MailConfig { private static final String PROPERTIES_DEFAULT = "mailConfig.properties"; public static String host; public static Integer port; public static String userName; public static String passWord; public static String emailForm; public static String timeout; public static String personal; public static Properties properties; static{ init(); } /** * 初始化 */ private static void init() { properties = new Properties(); try{ InputStream inputStream = MailConfig.class.getClassLoader().getResourceAsStream(PROPERTIES_DEFAULT); properties.load(inputStream); inputStream.close(); host = properties.getProperty("mailHost"); port = Integer.parseInt(properties.getProperty("mailPort")); userName = properties.getProperty("mailUsername"); passWord = properties.getProperty("mailPassword"); emailForm = properties.getProperty("mailUsername"); timeout = properties.getProperty("mailTimeout"); personal = "来自星星的我";//发送人 } catch(IOException e){ e.printStackTrace(); } } } 3.以上只是准备阶段,下面开始邮件编码 import cn.zyzpp.config.MailConfig; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.UnsupportedEncodingException; import java.util.Properties; /** * Create by yster@foxmail.com 2018/5/28/028 21:05 */ public class MailUtil { private static final String HOST = MailConfig.host; private static final Integer PORT = MailConfig.port; private static final String USERNAME = MailConfig.userName; private static final String PASSWORD = MailConfig.passWord; private static final String emailForm = MailConfig.emailForm; private static final String timeout = MailConfig.timeout; private static final String personal = MailConfig.personal; private static JavaMailSenderImpl mailSender = createMailSender(); /** * 邮件发送器 * * @return 配置好的工具 */ private static JavaMailSenderImpl createMailSender() { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost(HOST); sender.setPort(PORT); sender.setUsername(USERNAME); sender.setPassword(PASSWORD); sender.setDefaultEncoding("Utf-8"); Properties p = new Properties(); p.setProperty("mail.smtp.timeout", timeout); p.setProperty("mail.smtp.auth", "false"); sender.setJavaMailProperties(p); return sender; } /** * 发送邮件 * * @param to 接受人 * @param subject 主题 * @param html 发送内容 * @throws MessagingException 异常 * @throws UnsupportedEncodingException 异常 */ public static void sendMail(String to, String subject, String html) throws MessagingException,UnsupportedEncodingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); // 设置utf-8或GBK编码,否则邮件会有乱码 MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(emailForm, personal); messageHelper.setTo(to); messageHelper.setSubject(subject); messageHelper.setText(html, true); mailSender.send(mimeMessage); } 4.开始发送一封邮件 public static void main(String[] args){ try { MailUtil.sendMail("xxxx@qq.com", "标题", "内容"); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } 欢迎关注博主!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册