推荐使用标题5

1.安装使用易游服务器以及Foxmail

易游服务器傻瓜式安装
Foxmail 向导部分请断网

2.简单的入门案例

  • 1.创建mevan项目
  • 2.引入坐标
<!-- Javamail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.4</version></dependency>
  • 3 入门邮箱代码
/*java 邮箱的入门案例*/
public class MailDemo1 {public static void main(String[] args) throws Exception{//1.配置发送邮箱的属性信息Properties properties = new Properties();properties.setProperty("mail.smtp.host","localhost");// 设置stmp协议主机(案例:使用我们本机/实际:取邮箱POP3/SMTP服务查找)properties.setProperty("mail.smtp.auth","true");//设置stmp是否需要认证//2.使用属性打开一个mail的会话 -->这里的session使用的是javax.mail.Session;Session session = Session.getInstance(properties);//3.设置会话为debug模式  ---> 可以不设置 设置后操作打印会更精细session.setDebug(true);//4.创建邮件的主体信息对象MimeMessage mimeMessage = new MimeMessage(session);//5.写入邮件内容mimeMessage.setFrom(new InternetAddress("sass_ee88_01@export.com"));//设置发件人mimeMessage.setSubject("测试邮件");//设置邮件主题mimeMessage.setText("第一封java发送的邮件");//设置邮件的返送文本内容/** TO : 发送   正常 一对一 发送  能看到收件人*  CC : 抄送   一对多  很多人都能收到  能看到收件人*  BCC : 密送    看不到收件人*  Message.RecipientType.TO --> .BCC  ---> .CC*/mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("sass_ee88_02@export.com")); //设置收件人//6.获取发送器对象Transport transport = session.getTransport("smtp");//提供使用协议//7.设置发送人信息(补充发件人信息)transport.connect("localhost","sass_ee88_01","1234");//8.发送邮箱    填入发送的内容  收件人对象(此参数为所有的收件人)transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());//9.释放资源transport.close();}
}

3.简单邮件代码提取成为工具类

package com.itheima.util;import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Map;
import java.util.Properties;/*** 抽取工具类* @author 黑马程序员* @Company http://www.itheima.com*/
public class MailUtil {/**** @param map           收件人地址   key是邮件地址  value是邮件的类型* @param subject       邮件主题* @param content       邮件内容* @throws Exception*/public static void sendMail(Map<String,String> map , String subject, String content)throws Exception{//1.配置发送邮件的属性信息Properties properties = new Properties();properties.setProperty("mail.smtp.host","localhost");//设置stmp协议的主机properties.setProperty("mail.smtp.auth","true");//设置smtp是否需要认证//2.使用属性打开一个mail的会话Session session = Session.getInstance(properties);//3.设置会话是debug模式session.setDebug(true);//4.创建邮件的主体信息对象MimeMessage mimeMessage = new MimeMessage(session);//5.设置发件人mimeMessage.setFrom(new InternetAddress("saas_server@export.com"));//6.设置邮件主题mimeMessage.setSubject(subject);//7.设置邮件正文mimeMessage.setText(content);//8.设置收件人for(Map.Entry<String,String> me : map.entrySet()){String email = me.getKey();//邮件地址String type = me.getValue();//邮件类型if("to".equalsIgnoreCase(type)){//发送mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(email));//TO:发送  CC:抄送   BCC:密送}else if("cc".equalsIgnoreCase(type)){//CC:抄送mimeMessage.setRecipient(Message.RecipientType.CC,new InternetAddress(email));}else if("bcc".equalsIgnoreCase(type)){//BCC:密送mimeMessage.setRecipient(Message.RecipientType.BCC,new InternetAddress(email));}}//9.获取发送器对象Transport transport = session.getTransport("smtp");//提供使用的协议//10.设置发件人的信息transport.connect("localhost","saas_server","1234");//11.发送邮件transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());//12.释放资源transport.close();}
}

利用工具类 发送邮件

 public static void main(String[] args) throws Exception{Map<String,String> map = new HashMap<>();map.put("saas_ee88@export.com","to");map.put("saas_ee88_01@export.com","cc");map.put("saas_ee88_02@export.com","bcc");MailUtil.sendMail(map,"测试第二封邮件","使用工具类发送邮件....");}

4 javax.mail与spring整合

导入俩者坐标

    <!-- Javamail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.4</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>5.0.4.RELEASE</version></dependency>

mail.properties配置文件

#发件箱名称
mail.from=sass_ee88_01@export.com
#指定smtp服务器地址
mail.host=localhost
#指定发件箱的登陆用户名
mail.username=sass_ee88_01
#指定发件箱的登陆密码
mail.password=1234
#指定发送邮箱所用的编码
mail.encoding=UTF-8
#指定发送邮件的所用的协议 不写默认也是smtp
mail.protocol=smtp

applicationContext-mail.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 指定引入其他资源文件.properties文件 --><context:property-placeholder location="classpath:mail.properties"/><!-- 配置简单邮件消息对象 --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><!-- 此时我们只需要注入发件箱名称即可。不要注入主题,正文,收件箱等等信息,因为那些信息是不固定的 --><property name="from" value="${mail.from}"></property></bean><!-- 配置邮件发送器 --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.host}"></property><property name="username" value="${mail.username}"></property><property name="password" value="${mail.password}"></property><property name="defaultEncoding" value="${mail.encoding}"></property><property name="protocol" value="${mail.protocol}"></property><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop><!-- 是否需要验证 --><prop key="mail.debug">true</prop><!-- 是否需要debug的信息 --><prop key="mail.smtp.timeout">0</prop><!-- 设置发送超时时间,以秒为单位。0为永不超时 --></props></property></bean>
</beans>

java运行测试代码

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;/***  javaMail 和 spring整合的邮件发送*/
public class MailDemo03 {public static void main(String[] args) {//获取spring容器对象ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-mail.xml");// 获取消息对象 通过spring提供的SimpleMailMessage mailMessage = (SimpleMailMessage)context.getBean("mailMessage");// 准备邮件内容mailMessage.setSubject("spring和JavaMail整合的邮件发送第一次测试");//设置邮件主题mailMessage.setText("这是一封spring和JavaMail整合的邮件发送第一次测试"); //设置邮件文本内容mailMessage.setTo("sass_ee88_02@export.com");//设置收件人信息  ,此处可以多写 , 隔开
//        mailMessage.setCc("sass_ee88_02@export.com");
//        mailMessage.setBcc("sass_ee88_02@export.com");// 获取发送器对象 通过spring提供的JavaMailSenderImpl sender = (JavaMailSenderImpl) context.getBean("mailSender");//last end  发送邮箱sender.send(mailMessage);}
}

5 上面的只是简单的邮件发送 (正常使用还有图片以及附件的发送)

**这里我们就可以使用spring提供的复杂邮件帮助对象了**
/*** 带附件以及图片的邮件发送*/
public class MailDeo04 {public static void main(String[] args)throws Exception {//1.获取spring容器ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-mail.xml");//2.获取发送器对象JavaMailSenderImpl sender = (JavaMailSenderImpl) context.getBean("mailSender");//3.使用获取MimeMessage(多用途物联网邮件数据类型)MimeMessage mimeMessage = sender.createMimeMessage();//4.创建spring提供的复杂邮件的帮助对象MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);//是否为多部分数据//5.写入邮件信息helper.setFrom("sass_ee88_01@export.com");//设置发件人邮箱helper.setTo("sass_ee88_02@export.com");//设置收件人邮箱helper.setSubject("我是一封多数据格式的邮件");//设置邮件的主题String data  = "<html><head></head><body><h1>你好</h1>  <img src=cid:image ></body></html>" ;helper.setText(data,true);//设置邮件的正文   是否为html文本内容//填充 设置 image 图片路径FileSystemResource resource = new FileSystemResource(new File("E:\\img\\13.jpg"));//使用流  图片替换 cid 中image图片helper.addInline("image",resource);//添加附件  附件名称  附件来源流helper.addAttachment("1.jpg",resource);// last end  发送邮件sender.send(mimeMessage);}

Java简单的本地邮箱服务器发送(javax.mail)相关推荐

  1. java发送邮件到qq邮箱_Java利用javax.mail发送邮件至QQ邮箱

    javax.mail去哪里下载就不要说了吧.以下是利用javax.mail发送邮件的代码.public static void sendMail(String fromMail,String user ...

  2. Java实现163网易邮箱消息发送

    今天有个任务,就是使用Java实现163网易邮箱的发送,说实话,一开始我也不是很清楚,紧接着我就去找资料,后来才发现,那些资料的好老,还需要手动复制jar包到咱们的项目,有些博客还不告诉你有jar包, ...

  3. Java简单实现本地缓存

    Java简单实现本地缓存 注意:此代码不适合集群部署环境 import java.util.Map; import java.util.concurrent.ConcurrentHashMap;/** ...

  4. 简单的本地图片服务器的搭建

    简单的本地图片服务器的搭建 第一步:安装部署 Nginx 下载 Nginx 下载完解压后 第二步: 搭建图片服务器 第一步:安装部署 Nginx 下载 Nginx 保存文件路径不要包含中文! Linu ...

  5. java qq邮箱服务器端口_spring mail借助qq邮箱服务器发送邮件

    spring mail封装了javaMail的邮件服务,让邮件服务使用起来更简单,下面以qq邮箱服务器为例,用spring mail服务来发送邮件 配置qq邮箱,"设置"--&qu ...

  6. 安卓系统部署java web_Android搭建本地Tomcat服务器及相关配置

    在Android中我们时常会与服务器打交道,为了方便测试代码,我们有必要搭建本地的服务器,其实搭建本地的Tomcat服务器也是很简单: Tomcat的下载 环境配置 Eclipse中新建Web工程 一 ...

  7. java gmail smtp_通过JAVA中的Gmail SMTP服务器发送电子邮件

    在这里,我进行了一些更改,这些更改对我来说很好: Session session = Session.getInstance(props,null); 您可以像实例化那样实例化消息对象.最后: Tra ...

  8. 解决qq邮箱发送邮件失败javax.mail.AuthenticationFailedException

    问题原因: QQ邮箱的SSL加密连接已经默认开启, SSL协议(Secure Socket Layer,安全套接层)是由网景(Netscape)公司推出的一种安全通信协议, 是对计算机之间整个会话进行 ...

  9. Java计划任务(任务调度),定时器,定时安排任务,如定时发送Excel表格到用户邮箱(quartz+poi+javax.mail)

    文章中使用到的发送邮件代码就不写了,之前发布过--https://blog.csdn.net/yan95520/article/details/89366606 1.在pom.xml中导入jar包(m ...

最新文章

  1. android 定位的几种方式介绍
  2. 解答MPLS基础的路由问题—Vecloud微云
  3. Java引用类型与常量
  4. js中的cookie使用和vue-cookie的使用
  5. PrimeFaces Extensions中的全新JSF组件
  6. 1894. 找到需要补充粉笔的学生编号
  7. 2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程
  8. 四川大学软件学院操作系统笔记
  9. 反恐精英起源服务器文件在哪,反恐精英起源地图
  10. p6spy oracle,p6spy简单使用
  11. STAR、6W1H、SMART、PDCA、MKASH原则在精准招聘中的应用
  12. 硬件探索——数字钟的设计与制作
  13. oracle 创建cdb,Oracle 12C -- 手动创建CDB
  14. 2022华为机试真题 C++ 实现【数大雁】
  15. 常用的RTMP、RTSP、HTTP协议流直播流地址
  16. 聚光灯下的熊猫TV技术架构演进
  17. CGWallpapers网站不登录下载图片
  18. vue下拉框可输入关键字进行模糊查询
  19. CAST和VALIDATE_CONVERSION函数 db官方例子
  20. 手机安装Linus系统

热门文章

  1. 使用 SSL 加密的 JDBC 连接 SAP HANA 数据库
  2. 不从0开始设置坐标python_pyecharts y轴不从零开始与min值的应用
  3. Spring Cloud OAuth2 扩展登录方式:帐户密码登录、 手机验证码登录、 二维码扫码登录
  4. QT + 百度智能云之人脸对比
  5. 基于Playwright+Asyncio爬取携程网的机票数据
  6. yolov5训练时遇到的问题
  7. Magento 和 WordPress 的区别
  8. 在fritzing中怎么导入_怎样将Adafruit库与Fritzing一起使用
  9. fes防御色覅十点半
  10. 基于android的英语学习