100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 网易云邮箱发送邮件 java

网易云邮箱发送邮件 java

时间:2021-08-19 15:50:01

相关推荐

网易云邮箱发送邮件 java

配置邮箱授权码 参考 /m0_58111460/article/details/124739059

代码模块

实体分为授权跟参数

//授权实体

@Data

public class NetEaseEmailAuthorization {private String sendEmail;//开启授权码的邮箱private String authorizationCode;//授权码private String smtpEmail; //SMTP服务器地址: }

参数实体

@Data

public class NetEaseEmailMsgData {// 发送人或者公司private String personal;//接收人邮箱地址private String receiveEmail;//邮件标题private String title;// 邮件内容private String content;}

调用类

@Component@Slf4jpublic class NetEaseEmailSendMsgHnadle {public void sendMsgOne(NetEaseEmailAuthorization emailAuthorization, NetEaseEmailMsgData emailMsgData){NetEaseEmailUtil.send(emailAuthorization,emailMsgData);}public void sendMsgBatch(NetEaseEmailAuthorization emailAuthorization, List<NetEaseEmailMsgData> emailMsgData){emailMsgData.stream().forEach(s->{NetEaseEmailUtil.send(emailAuthorization,s);});}}

发送工具类

import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Date;import java.util.Properties;public class NetEaseEmailUtil {public static void send(NetEaseEmailAuthorization authorization, NetEaseEmailMsgData msgData){try {//创建连接邮件服务器的参数配置Properties props = new Properties();// 参数配置props.setProperty("mail.smtp.host", authorization.getSmtpEmail());// 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true");// 需要请求认证props.setProperty("mail.transport.protocol", "smtp");//根据配置创建会话对象和邮件服务器交互Session session = Session.getInstance(props);session.setDebug(true);// 设置为debug模式, 可以查看详细的发送日志//创建邮件MimeMessage message = createEmail(session, authorization.getSendEmail(), msgData);//使用Session获取邮件传输对象Transport transport = session.getTransport();//使用邮箱账号和密码连接邮件服务器transport.connect(authorization.getSendEmail(), authorization.getAuthorizationCode());//发送邮件transport.sendMessage(message, message.getAllRecipients());//关闭连接transport.close();}catch (Exception e){e.printStackTrace();}}/**** 创建邮件** */public static MimeMessage createEmail(Session session, String sendMail, NetEaseEmailMsgData msgData ) throws Exception {//创建一封邮件MimeMessage message = new MimeMessage(session);//发件人message.setFrom(new InternetAddress(sendMail, msgData.getPersonal(), "UTF-8"));//收件人message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(msgData.getReceiveEmail(), "", "UTF-8"));//邮件主题message.setSubject(msgData.getTitle(), "UTF-8");//邮件正文message.setContent(msgData.getContent(), "text/html;charset=UTF-8");//设置发件时间message.setSentDate(new Date());//保存设置message.saveChanges();return message;}}

调用 在使用类里面注入方法 组装参数调用

@Autowired

privite NetEaseEmailSendMsgHnadle netEaseEmailSendMsgHnadle;

NetEaseEmailAuthorization emailAuthorization = new NetEaseEmailAuthorization();//自行装配邮箱授权参数NetEaseEmailMsgData emailMsgData = new NetEaseEmailMsgData();//自行组装发送参数emailMsgData.setTitle("");emailMsgData.setContent("");netEaseEmailSendMsgHnadle.sendMsgOne(emailAuthorization,emailMsgData);

示例

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。