springboot 邮件,springboot邮件服务
工具类:
包com。lhh。utils导入com。lhh。比恩。电子邮件实体;导入javax。邮件。*;导入javax。邮件。互联网。互联网地址;导入javax。邮件。互联网。mime消息;导入Java。util。属性;/* * * * @作者刘欢欢* @版本1.0 * @日期2021/4/26 20:51 */public class MailSenderUtil {//建立服务器的邮件连接,从而可以进行发送邮件公共静态会话获取邮件会话(电子邮件实体电子邮件实体){//0.1确定连接位置性能属性=新属性();//获取163邮箱简单邮件传输协议服务器的地址,属性。设置属性( mail。“主机”,电子邮件实体。gethost());//是否进行权限验证属性。设置属性( mail。SMTP。授权,电子邮件实体。get auth());//0.2确定权限(账号和密码)Authenticator Authenticator=new Authenticator(){ @ Override public password authentic ation get password authentic ation(){//填写自己的163邮箱的登录帐号和授权密码(不是登录密码)。返回新的密码验证(电子邮件实体。获取用户名()、电子邮件实体。get password());} };//1 获得连接/** *属性:包含配置信息的对象,属性类型* 配置邮箱服务器地址、配置是否进行权限验证(帐号密码验证)等* *认证者:确定权限(帐号和密码) * * 所以就要在上面构建这两个对象。会话*/会话=会话。getdefaultinstance(属性,验证器);返回会话;} /** * 指定一个人发送邮件,单个发送* @Param toEmailAddress单个接受邮件的邮箱地址* @Param标题主题* @Param内容内容* */public static void sendmailltosingleuser(电子邮件实体电子邮件实体){//获得邮箱服务器的连接session session=get mail session(邮件实体);//2 创建消息消息消息=新模拟消息(会话);//2.1 发件人我们自己的邮箱地址,就是名称尝试{消息。设置来自(新的互联网地址(电子邮件实体。get username()));/** * 2.2 收件人* 第一个参数:*收件人类型。到代表收件人*收件人类型。市议会抄送*收件人类型。体心立方基底细胞癌(基底细胞carcinoma)英国商会(英国商会)暗送* 比如英语字母表中第一个字母要给仓库发邮件,但是英语字母表中第一个字母觉得有必要给要让英语字母表中第三个字母也看看其内容,就在给仓库发邮件时, * 将邮件内容抄送给c,那么英语字母表中第三个字母也能看到其内容了,但是仓库也能知道英语字母表中第一个字母给英语字母表中第三个字母抄送过该封邮件* 而如果是暗送(密送)给英语字母表中第三个字母的话,那么仓库就不知道英语字母表中第一个字母给英语字母表中第三个字母发送过该封邮件。 * 第二个参数* 收件人的地址,或者是一个地址[],用来装
抄送或者暗送人的名单。或者用来群发。可以是相同邮箱服务器的,也可以是不同的 * 这里我们发送给我们的qq邮箱 */ message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(emailEntity.getToList().get(0))); //设置抄送人,这里设置自己的是抄送人,免得被网易邮箱列为垃圾邮件 message.setRecipient(Message.RecipientType.CC, new InternetAddress(emailEntity.getUserName())); // 2.3 主题(标题) message.setSubject(emailEntity.getSubject()); //设置编码,防止发送的内容中文乱码。 message.setContent(emailEntity.getContext(), "text/html;charset=UTF-8"); //3发送消息 Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } } /** * 群发邮件,也可以只发一个人。可设置主题和邮件内容,无附件 * @Param toEmailAddressArray 接受邮件的所有邮箱地址 * @Param title 主题 * @Param content 内容 **/ public static void sendMailToUserArray(EmailEntity emailEntity) { String[] toEmailAddressArray = (String[]) emailEntity.getToList().toArray(new String[0]); //获得邮箱服务器的连接 Session session = getMailSession(emailEntity); //2 创建消息 Message message = new MimeMessage(session); // 2.1 发件人 我们自己的邮箱地址,就是名称 try { message.setFrom(new InternetAddress(emailEntity.getUserName())); if (toEmailAddressArray != null) { // 为每个邮件接收者创建一个地址 Address[] toEmailRecipients = null; toEmailRecipients = new InternetAddress[toEmailAddressArray.length]; for (int i = 0; i < toEmailAddressArray.length; i++) { toEmailRecipients[i] = new InternetAddress(toEmailAddressArray[i]); } message.setRecipients(MimeMessage.RecipientType.TO, toEmailRecipients); } //设置抄送人,这里设置自己的是抄送人,免得被网易邮箱列为垃圾邮件 message.setRecipient(Message.RecipientType.CC, new InternetAddress(emailEntity.getUserName())); // 2.3 主题(标题) message.setSubject(emailEntity.getSubject()); //设置编码,防止发送的内容中文乱码。 message.setContent(emailEntity.getContext(), "text/html;charset=UTF-8"); //3发送消息 Transport.send(message); } catch (MessagingException ex) { ex.printStackTrace(); } }}邮件实体类:
package com.lhh.bean;import java.io.Serializable;import java.util.ArrayList;public class EmailEntity implements Serializable { private static final long serialVersionUID = 1L; //邮箱服务器地址 private String host; //主机端口 private Integer port; //发送者的邮箱账号 private String userName; //发送者的密码 private String password; //发送者的邮箱地址 private String fromAddress; //接收者的邮箱地址 private ArrayList<String> toList; //设置邮件主题 private String subject; //设置邮件内容 private String context; //设置邮件类型 private String contextType; //设置是否需要验证 private String auth; public String getAuth() { return auth; } public void setAuth(String auth) { this.auth = auth; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public Integer getPort() { return port; } public void setPort(Integer port) { this.port = port; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFromAddress() { return fromAddress; } public void setFromAddress(String fromAddress) { this.fromAddress = fromAddress; } public ArrayList<String> getToList() { return toList; } public void setToList(ArrayList<String> toList) { this.toList = toList; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContext() { return context; } public void setContext(String context) { this.context = context; } public String getContextType() { return contextType; } public void setContextType(String contextType) { this.contextType = contextType; }}
邮件常量类:
public class MailConst { //你的进行发送邮件的邮箱 public static final String USER_NAME = "xxxx"; //授权密码 public static final String PWD_CODE = "xxxxx"; public static final String MAIL_HOST = "smtp.163.com"; public static final String MAIL_SMTP_AUTH = "true"; //邮件主题 public static final String NOTIFICATION_MAIL_TITLE = "测试邮件"; //邮件内容 public static final String NOTIFICATION_MAIL_CONTENT = "你好,你有一个新的通知,请前往手机端进行查看!";}
测试邮件:
public class TestMail { public static void main(String[] args) { EmailEntity emailEntity = new EmailEntity(); ArrayList<String> emailArray = new ArrayList<>(); //测试,收取邮件的邮箱,可以填写自己的发送邮件的邮箱 emailArray.add("xxxx@qq.com"); emailEntity.setToList(emailArray); emailEntity.setSubject(MailConst.NOTIFICATION_MAIL_TITLE); emailEntity.setContext(MailConst.NOTIFICATION_MAIL_CONTENT); emailEntity.setUserName(MailConst.USER_NAME); emailEntity.setAuth(MailConst.MAIL_SMTP_AUTH); emailEntity.setPassword(MailConst.PWD_CODE); emailEntity.setHost(MailConst.MAIL_HOST); MailSenderUtil.sendMailToUserArray(emailEntity);// MailSenderUtil.sendMailTOSingleUser(emailEntity); }}
测试发送结果页面:
以上就是SpringBoot实现邮件发送的示例代码的详细内容,更多关于SpringBoot邮件发送的资料请关注盛行IT其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。