700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java实现网易企业163邮箱发送邮件

Java实现网易企业163邮箱发送邮件

时间:2021-05-13 00:40:22

相关推荐

Java实现网易企业163邮箱发送邮件

前提:

本文介绍两种邮件发送,一个是网易163邮箱,另一个是网易企业163邮箱

项目地址:/su1573/mail-send

一、登录邮箱设置

网易163邮箱

1、登录个人163邮箱,如图选中POP3/SMTP/IMAP

2、开启POP3/SMTP服务,根据提示获取授权码,授权要保存好,一会儿要用到

网易企业163邮箱

这个我这里是没有上面的POP3/SMTP服务,在代码中用的直接是登录邮箱密码

二、jar包引用

<!-- javax.mai 核心包 --><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.5</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>5.2.11.RELEASE</version></dependency>

三、代码演示

package com.su.mailsend.service;import com.sun.mail.util.MailSSLSocketFactory;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.*;import javax.mail.internet.*;import java.io.File;import java.util.Date;import java.util.Properties;/*** @program: program* @Date: /12/16 19:26* @Author: Mr.SU* @Description:*/public class MailStmpSend {/*** @Description: 网易163邮箱,发送邮件* @param: "[to, text, title]"* @Return: boolean* @Author: supenghui* @Date: /12/16 16:54*/private void sendMail(String to, String text, String title) throws Exception {String from = "xxx@"; // 发件人邮箱地址String user = "xxx@"; // 发件人称号,同邮箱地址String password = "ASDFGHJKLZXCVBNM"; // 发件人邮箱客户端授权码// 一、创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties();props.setProperty("mail.smtp.host", ""); // 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)props.put("mail.smtp.host", "");props.put("mail.smtp.auth", "true"); // 需要经过授权,也就是用户名和密码的校验,这样才能通过验证(一定要有这一条)// 二、根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getDefaultInstance(props);session.setDebug(true); // true 在控制台(console)上看到发送邮件的过程// 三、 创建一封复杂邮件(文本+附件)try {// 3.1. 创建邮件对象MimeMessage message = new MimeMessage(session); // 加载发件人地址// 3.2. From: 发件人message.setFrom(new InternetAddress(from));// 3.3. To: 收件人(可以增加多个收件人)message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 加载收件人地址// 3.4. To: 收件人(可以增加多个抄送)message.addRecipient(, new InternetAddress(to)); // 加载抄件人地址// 3.5. Subject: 邮件主题message.setSubject(title); // 加载标题// 3.6. 邮件内容MimeMultipart multipart = new MimeMultipart(); // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件MimeBodyPart contentPart = new MimeBodyPart(); // 设置邮件的文本内容contentPart.setContent(text, "text/html;charset=utf-8");multipart.addBodyPart(contentPart);// 3.7. 邮件附件String attPath = "D:\\data\\ftpUpload\\\\12\\10\\盖章指令文件.zip";MimeBodyPart attachment = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource(attPath)); // 读取本地文件attachment.setDataHandler(dh); // 将附件数据添加到“节点”attachment.setFileName(MimeUtility.encodeText(dh.getName())); // 设置附件的文件名(需要编码)multipart.addBodyPart(attachment);multipart.setSubType("mixed"); // 混合关系// 3.8. 设置整个邮件的关系(将最终的混合“节点”作为邮件的内容添加到邮件对象)message.setContent(multipart);// 3.9. 设置发件时间message.setSentDate(new Date());// 3.10. 保存上面的所有设置message.saveChanges(); // 保存变化// 四、 根据 Session 获取邮件传输对象Transport transport = session.getTransport("smtp");// 五、 使用 邮箱账号 和 授权码 连接邮件服务器transport.connect("", user, password);// 六、 发送邮件,transport.sendMessage(message, message.getAllRecipients());// 七、 关闭连接transport.close();} catch (MessagingException e) {e.printStackTrace();}}/*** @Description: 网易企业163邮箱发送邮件* @param: "[]"* @Return: void* @Author: supenghui* @Date: /12/17 13:55*/public void sendHtmlMail() {try {String from = "发件人昵称";//发件人昵称展示// String[] to = {"XXX", "XXX"};//接收邮箱String to = "xxx@";//接收邮箱// String[] copy = {"XXX", "XXX"};//抄送邮箱String copy = "xxx@";//抄送邮箱String subject = "测试邮件";//邮件主题String text = "你好,这是一封测试邮件,无需回复。";String host = "smtphz.";//163企业邮箱smtpString username = "xxx@su-";//企业邮箱 @后面是域名String password = "123456";//企业邮箱密码// 一、创建参数配置, 用于连接邮件服务器的参数配置Properties prop = new Properties();prop.setProperty("mail.smtp.auth", "true"); // 需要经过授权,也就是用户名和密码的校验,这样才能通过验证(一定要有这一条)prop.setProperty("mail.smtp.timeout", "994"); // 加密端口(ssl) 可通过 /help/client-profile.html 进行查询MailSSLSocketFactory sf = new MailSSLSocketFactory();// SSL加密sf.setTrustAllHosts(true); // 设置信任所有的主机prop.put("mail.smtp.ssl.enable", "true");prop.put("mail.smtp.ssl.socketFactory", sf);//二、创建一封复杂邮件(文本+附件)JavaMailSenderImpl javaMailSend = new JavaMailSenderImpl();// 3.1. 创建邮件对象MimeMessage message = javaMailSend.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");// 3.2. From: 发件人String nick = MimeUtility.encodeText(from);//设置昵称messageHelper.setFrom(new InternetAddress(nick + " <" + username + ">"));// 邮件发送者// 3.3. To: 收件人(可以增加多个收件人)messageHelper.setTo(to); //收件人// 3.4. To: 收件人(可以增加多个抄送)messageHelper.setCc(copy); //抄送人// 3.5. Subject: 邮件主题messageHelper.setSubject(subject); //邮件标题// 3.6. 邮件内容messageHelper.setText(text, true); //文本中,如需换行,要用<br>,不能用\n换行// 3.7. 邮件附件File file = new File("D:\\data\\ftpUpload\\\\12\\10\\盖章指令文件.zip");messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()), file);// 3.8. 设置邮件服务器登录信息javaMailSend.setHost(host);javaMailSend.setUsername(username);javaMailSend.setPassword(password);javaMailSend.setJavaMailProperties(prop);// 六、 发送邮件,javaMailSend.send(message);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {try {MailStmpSend ds = new MailStmpSend();//ds.sendMail("xxx@", "你好,这是一封测试邮件,无需回复。", "测试邮件");//ds.sendMail("xxxx@", "你好,这是一封测试邮件,无需回复。", "测试邮件");ds.sendHtmlMail();} catch (Exception e) {e.printStackTrace();}}}

四、效果展示

网易163邮箱发送邮件:

因篇幅问题,附件在最下面,这里就不截了

网易企业163邮箱发送邮件:

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